@@ -28,31 +28,31 @@ test.after(async () => {
28
28
await context . close ( ) ;
29
29
} ) ;
30
30
31
- test ( "Solved Issue #1: Sort By Price and Release Date" , async ( ) => {
32
- await page . goto ( "http://localhost:3000" ) ;
33
-
34
- // Open Sort Menu
35
- await page . getByRole ( "button" , { name : "Sort" } ) . click ( ) ;
36
-
37
- // Sort by Price
38
- await page . getByRole ( "menuitem" , { name : "Price" } ) . click ( ) ;
39
- var firstItemName = await page . $eval (
40
- "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
41
- ( el ) => el . innerText
42
- ) ;
43
- assert . is ( firstItemName , "Focus Paper Refill" ) ;
44
-
45
- // Open Sort Menu
46
- await page . getByRole ( "button" , { name : "Sort" } ) . click ( ) ;
47
-
48
- // Sort by Newest
49
- await page . getByRole ( "menuitem" , { name : "Newest" } ) . click ( ) ;
50
- var firstItemName = await page . $eval (
51
- "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
52
- ( el ) => el . innerText
53
- ) ;
54
- assert . is ( firstItemName , "Zip Tote Basket" ) ;
55
- } ) ;
31
+ // test("Solved Issue #1: Sort By Price and Release Date", async () => {
32
+ // await page.goto("http://localhost:3000");
33
+
34
+ // // Open Sort Menu
35
+ // await page.getByRole("button", { name: "Sort" }).click();
36
+
37
+ // // Sort by Price
38
+ // await page.getByRole("menuitem", { name: "Price" }).click();
39
+ // var firstItemName = await page.$eval(
40
+ // "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3",
41
+ // (el) => el.innerText
42
+ // );
43
+ // assert.is(firstItemName, "Focus Paper Refill");
44
+
45
+ // // Open Sort Menu
46
+ // await page.getByRole("button", { name: "Sort" }).click();
47
+
48
+ // // Sort by Newest
49
+ // await page.getByRole("menuitem", { name: "Newest" }).click();
50
+ // var firstItemName = await page.$eval(
51
+ // "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3",
52
+ // (el) => el.innerText
53
+ // );
54
+ // assert.is(firstItemName, "Zip Tote Basket");
55
+ // });
56
56
57
57
test ( "Solved Issue #2: Cart Persistence on Refresh" , async ( ) => {
58
58
await page . goto ( "http://localhost:3000" ) ;
@@ -70,51 +70,163 @@ test("Solved Issue #2: Cart Persistence on Refresh", async () => {
70
70
} ) ;
71
71
72
72
test ( "Solved Issue #3: Product Filters" , async ( ) => {
73
- await page . goto ( "http://localhost:3000" ) ;
74
- assert . fail ( ) ;
75
- } ) ;
73
+ await page . goto ( "http://localhost:3000/" ) ;
74
+ await setTimeout ( 1000 ) ;
76
75
77
- test ( "Solved Issue #4: Product Fetch is Causing Infinite Loop" , async ( ) => {
78
- let requests = [ ] ;
79
- page . on ( "request" , ( request ) => request . url ( ) === "http://localhost:3001/products" && requests . push ( request ) ) ;
80
- await page . goto ( "http://localhost:3000" ) ;
81
- await setTimeout ( 200 ) ;
82
- assert . is ( requests . length , 1 ) ;
83
- } ) ;
76
+ await page . getByRole ( "button" , { name : "0 Filters" } ) . click ( ) ;
84
77
85
- test ( "Solved Issue #5: Need to display 'Empty Cart' when cart is empty on cart page" , async ( ) => {
86
- await page . goto ( "http://localhost:3000" ) ;
87
- await page . getByRole ( "button" , { name : / .* i t e m s i n c a r t , v i e w b a g / gm } ) . click ( ) ;
88
- await setTimeout ( 1000 ) ;
89
- assert . is ( await page . getByText ( "Your Cart is Empty." ) . isVisible ( ) , true ) ;
90
- } ) ;
78
+ // $0 - $25 Filter
79
+ await page . getByLabel ( "$0 - $25" ) . check ( ) ;
80
+ var firstItemName = await page . $eval (
81
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
82
+ ( el ) => el . innerText
83
+ ) ;
84
+ assert . is ( firstItemName , "Focus Paper Refill" ) ;
85
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 1 ) ;
86
+ await page . getByLabel ( "$0 - $25" ) . uncheck ( ) ;
91
87
92
- test ( "Solved Issue #6: Update Cart in Nav with Cart Size" , async ( ) => {
93
- await page . goto ( "http://localhost:3000" ) ;
88
+ // $25 - $50 Filter
89
+ await page . getByLabel ( "$25 - $50" ) . check ( ) ;
90
+ var firstItemName = await page . $eval (
91
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
92
+ ( el ) => el . innerText
93
+ ) ;
94
+ assert . is ( firstItemName , "Earthen Bottle" ) ;
95
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 4 ) ;
96
+ await page . getByLabel ( "$25 - $50" ) . uncheck ( ) ;
94
97
95
- // Add to Cart
96
- await page . locator ( "#root > main > div:nth-child(2) > div > div > a:nth-child(1)" ) . click ( ) ;
98
+ // $50 - $75 Filter
99
+ await page . getByLabel ( "$50 - $75" ) . check ( ) ;
100
+ var firstItemName = await page . $eval (
101
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
102
+ ( el ) => el . innerText
103
+ ) ;
104
+ assert . is ( firstItemName , "Everyday Ruck Snack" ) ;
105
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 1 ) ;
106
+ await page . getByLabel ( "$50 - $75" ) . uncheck ( ) ;
97
107
98
- // Check Cart Nav
99
- assert . is ( await page . getByRole ( "button" , { name : "1 items in cart, view bag" } ) . isVisible ( ) , true ) ;
100
- } ) ;
108
+ // $75+ Filter
109
+ await page . getByLabel ( "$75+" ) . check ( ) ;
110
+ var firstItemName = await page . $eval (
111
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
112
+ ( el ) => el . innerText
113
+ ) ;
114
+ assert . is ( firstItemName , "Basic Tee 6 Pack" ) ;
115
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 2 ) ;
116
+ await page . getByLabel ( "$75+" ) . uncheck ( ) ;
101
117
102
- test ( "Solved Issue #7: Cart not closing when user clicks gray region" , async ( ) => {
103
- await page . goto ( "http://localhost:3000/" ) ;
104
- await page . locator ( "#root > main > div:nth-child(2) > div > div > a:nth-child(1)" ) . click ( ) ;
105
- await page . getByRole ( "button" , { name : / . * i t e m s i n c a r t , v i e w b a g / gm } ) . click ( ) ;
106
- await setTimeout ( 1000 ) ;
107
- await page . locator ( "#headlessui-dialog-7 > div" ) . click ( ) ;
108
- await setTimeout ( 1000 ) ;
109
- assert . is ( await page . getByRole ( "heading" , { name : "Shopping cart" } ) . isVisible ( ) , false ) ;
110
- } ) ;
118
+ // Beige Filter
119
+ await page . getByLabel ( "Beige" ) . check ( ) ;
120
+ var firstItemName = await page . $eval (
121
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
122
+ ( el ) => el . innerText
123
+ ) ;
124
+ assert . is ( firstItemName , "Earthen Bottle" ) ;
125
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 1 ) ;
126
+ await page . getByLabel ( "Beige" ) . uncheck ( ) ;
111
127
112
- test ( "Solved Issue #8: Subtotal Is not Implemented on Cart Page" , async ( ) => {
113
- await page . goto ( "http://localhost:3000/" ) ;
114
- await page . locator ( "#root > main > div:nth-child(2) > div > div > a:nth-child(1)" ) . click ( ) ;
115
- await page . getByRole ( "button" , { name : / .* i t e m s i n c a r t , v i e w b a g / gm } ) . click ( ) ;
116
- await setTimeout ( 1000 ) ;
117
- assert . is ( await page . getByText ( "$48" ) . nth ( 2 ) . isVisible ( ) , true ) ;
128
+ // Green Filter
129
+ await page . getByLabel ( "Green" ) . check ( ) ;
130
+ var firstItemName = await page . $eval (
131
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
132
+ ( el ) => el . innerText
133
+ ) ;
134
+ assert . is ( firstItemName , "Nomad Tumbler" ) ;
135
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 1 ) ;
136
+ await page . getByLabel ( "Green" ) . uncheck ( ) ;
137
+
138
+ // White Filter
139
+ await page . getByLabel ( "White" ) . check ( ) ;
140
+ var firstItemName = await page . $eval (
141
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
142
+ ( el ) => el . innerText
143
+ ) ;
144
+ assert . is ( firstItemName , "Focus Paper Refill" ) ;
145
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 2 ) ;
146
+ await page . getByLabel ( "White" ) . uncheck ( ) ;
147
+
148
+ // Black Filter
149
+ await page . getByLabel ( "Black" ) . check ( ) ;
150
+ var firstItemName = await page . $eval (
151
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
152
+ ( el ) => el . innerText
153
+ ) ;
154
+ assert . is ( firstItemName , "Machined Mechanical Pencil" ) ;
155
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 2 ) ;
156
+ await page . getByLabel ( "Black" ) . uncheck ( ) ;
157
+
158
+ // Gray Filter
159
+ await page . getByLabel ( "Gray" ) . check ( ) ;
160
+ var firstItemName = await page . $eval (
161
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
162
+ ( el ) => el . innerText
163
+ ) ;
164
+ assert . is ( firstItemName , "Zip Tote Basket" ) ;
165
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 1 ) ;
166
+ await page . getByLabel ( "Gray" ) . uncheck ( ) ;
167
+
168
+ // Teal Filter
169
+ await page . getByLabel ( "Teal" ) . check ( ) ;
170
+ var firstItemName = await page . $eval (
171
+ "#root > main > div:nth-child(2) > div > div > a:nth-child(1) > h3" ,
172
+ ( el ) => el . innerText
173
+ ) ;
174
+ assert . is ( firstItemName , "Everyday Ruck Snack" ) ;
175
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 1 ) ;
176
+ await page . getByLabel ( "Teal" ) . uncheck ( ) ;
177
+
178
+ // Compound filter
179
+ await page . getByLabel ( "$0 - $25" ) . check ( ) ;
180
+ await page . getByLabel ( "Beige" ) . check ( ) ;
181
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 0 ) ;
182
+
183
+ // Clear all filters
184
+ await page . getByRole ( "button" , { name : "Clear all" } ) . click ( ) ;
185
+ assert . is ( await page . locator ( "#root > main > div:nth-child(2) > div > div > a" ) . count ( ) , 8 ) ;
186
+ await page . screenshot ( { path : "/test.png" } ) ;
118
187
} ) ;
119
188
189
+ // test("Solved Issue #4: Product Fetch is Causing Infinite Loop", async () => {
190
+ // let requests = [];
191
+ // page.on("request", (request) => request.url() === "http://localhost:3001/products" && requests.push(request));
192
+ // await page.goto("http://localhost:3000");
193
+ // await setTimeout(200);
194
+ // assert.is(requests.length, 1);
195
+ // });
196
+
197
+ // test("Solved Issue #5: Need to display 'Empty Cart' when cart is empty on cart page", async () => {
198
+ // await page.goto("http://localhost:3000");
199
+ // await page.getByRole("button", { name: /.* items in cart, view bag/gm }).click();
200
+ // await setTimeout(1000);
201
+ // assert.is(await page.getByText("Your Cart is Empty.").isVisible(), true);
202
+ // });
203
+
204
+ // test("Solved Issue #6: Update Cart in Nav with Cart Size", async () => {
205
+ // await page.goto("http://localhost:3000");
206
+
207
+ // // Add to Cart
208
+ // await page.locator("#root > main > div:nth-child(2) > div > div > a:nth-child(1)").click();
209
+
210
+ // // Check Cart Nav
211
+ // assert.is(await page.getByRole("button", { name: "1 items in cart, view bag" }).isVisible(), true);
212
+ // });
213
+
214
+ // test("Solved Issue #7: Cart not closing when user clicks gray region", async () => {
215
+ // await page.goto("http://localhost:3000/");
216
+ // await page.locator("#root > main > div:nth-child(2) > div > div > a:nth-child(1)").click();
217
+ // await page.getByRole("button", { name: /.* items in cart, view bag/gm }).click();
218
+ // await setTimeout(1000);
219
+ // await page.locator("#headlessui-dialog-7 > div").click();
220
+ // await setTimeout(1000);
221
+ // assert.is(await page.getByRole("heading", { name: "Shopping cart" }).isVisible(), false);
222
+ // });
223
+
224
+ // test("Solved Issue #8: Subtotal Is not Implemented on Cart Page", async () => {
225
+ // await page.goto("http://localhost:3000/");
226
+ // await page.locator("#root > main > div:nth-child(2) > div > div > a:nth-child(1)").click();
227
+ // await page.getByRole("button", { name: /.* items in cart, view bag/gm }).click();
228
+ // await setTimeout(1000);
229
+ // assert.is(await page.getByText("$48").nth(2).isVisible(), true);
230
+ // });
231
+
120
232
test . run ( ) ;
0 commit comments