Skip to content

Commit aecd5b3

Browse files
committed
finish tests
1 parent 910c06d commit aecd5b3

File tree

2 files changed

+181
-63
lines changed

2 files changed

+181
-63
lines changed

.github/workflows/main.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,9 @@ jobs:
3434

3535
- name: Run Tests
3636
run: node .github/workflows/test.js
37+
38+
- name: Upload screenshot
39+
uses: actions/upload-artifact@v3
40+
with:
41+
name: screenshot
42+
path: /test.png

.github/workflows/test.js

Lines changed: 175 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,31 @@ test.after(async () => {
2828
await context.close();
2929
});
3030

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+
// });
5656

5757
test("Solved Issue #2: Cart Persistence on Refresh", async () => {
5858
await page.goto("http://localhost:3000");
@@ -70,51 +70,163 @@ test("Solved Issue #2: Cart Persistence on Refresh", async () => {
7070
});
7171

7272
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);
7675

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();
8477

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: /.* items in cart, view bag/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();
9187

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();
9497

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();
97107

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();
101117

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: /.* items in cart, view bag/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();
111127

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: /.* items in cart, view bag/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" });
118187
});
119188

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+
120232
test.run();

0 commit comments

Comments
 (0)