Skip to content

Commit 322f9e1

Browse files
committed
Merge branch 'develop' into v3.6.0
2 parents 42ad476 + 6d9ca82 commit 322f9e1

File tree

7 files changed

+57
-59
lines changed

7 files changed

+57
-59
lines changed

e2e/tests/desktop/guest-shopper.spec.js

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,24 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
2424

2525
await topsNav.click();
2626
// PLP
27-
const cableKnitShell = await page.getByRole("link", {
28-
name: /Cable Knit Shell/i,
27+
const productTile = await page.getByRole("link", {
28+
name: /Cotton Turtleneck Sweater/i,
2929
});
3030
// selecting swatch
31-
const initialImgEl = await cableKnitShell.locator("img");
31+
const initialImgEl = await productTile.locator("img");
3232
const initialSrc = await initialImgEl.getAttribute("src");
33+
await expect(productTile.getByText(/From \$39\.99/i)).toBeVisible();
3334

34-
await expect(cableKnitShell.getByText(/From £44\.16/i)).toBeVisible();
35-
36-
await cableKnitShell.getByLabel(/Ivory/, { exact: true }).hover();
37-
const changedImgEl = await cableKnitShell.locator("img");
35+
await productTile.getByLabel(/Black/, { exact: true }).hover();
36+
const changedImgEl = await productTile.locator("img");
3837
const changeImgSrc = await changedImgEl.getAttribute("src");
39-
await expect(cableKnitShell.getByText(/From £44\.16/i)).toBeVisible();
38+
await expect(productTile.getByText(/From \$39\.99/i)).toBeVisible();
4039

4140
expect(changeImgSrc).not.toBe(initialSrc);
42-
await cableKnitShell.click();
41+
await productTile.click();
4342
// PDP
4443
await expect(
45-
page.getByRole("heading", { name: /Cable Knit Shell/i })
44+
page.getByRole("heading", { name: /Cotton Turtleneck Sweater/i })
4645
).toBeVisible();
4746
await page.getByRole("radio", { name: "L", exact: true }).click();
4847

@@ -53,7 +52,7 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
5352
const updatedPageURL = await page.url();
5453
const params = updatedPageURL.split("?")[1];
5554
expect(params).toMatch(/size=9LG/i);
56-
expect(params).toMatch(/color=JJ5AAXX/i);
55+
expect(params).toMatch(/color=JJ169XX/i);
5756
await page.getByRole("button", { name: /Add to Cart/i }).click();
5857

5958
const addedToCartModal = page.getByText(/2 items added to cart/i);
@@ -65,7 +64,7 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
6564
await page.getByLabel(/My cart/i).click();
6665

6766
await expect(
68-
page.getByRole("link", { name: /Cable Knit Shell/i })
67+
page.getByRole("link", { name: /Cotton Turtleneck Sweater/i })
6968
).toBeVisible();
7069

7170
await page.getByRole("link", { name: "Proceed to Checkout" }).click();
@@ -151,6 +150,6 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
151150
).toBeVisible();
152151
await expect(page.getByText(/2 Items/i)).toBeVisible();
153152
await expect(
154-
page.getByRole("link", { name: /Cable Knit Shell/i })
153+
page.getByRole("link", { name: /Cotton Turtleneck Sweater/i })
155154
).toBeVisible();
156155
});

e2e/tests/desktop/registered-shopper.spec.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -55,48 +55,48 @@ test("Registered shopper can checkout items", async ({ page }) => {
5555
await topsNav.click();
5656

5757
// PLP
58-
const cableKnitShell = await page.getByRole("link", {
59-
name: /Cable Knit Shell/i,
58+
const productTile = await page.getByRole("link", {
59+
name: /Cotton Turtleneck Sweater/i,
6060
});
6161
// selecting swatch
62-
const initialImgEl = await cableKnitShell.locator("img");
62+
const initialImgEl = await productTile.locator("img");
6363
const initialSrc = await initialImgEl.getAttribute("src");
64-
await expect(cableKnitShell.getByText(/From £44\.16/i)).toBeVisible();
64+
await expect(productTile.getByText(/From \$39\.99/i)).toBeVisible();
6565

66-
await cableKnitShell.getByLabel(/Ivory/, { exact: true }).hover();
67-
const changedImgEl = await cableKnitShell.locator("img");
66+
await productTile.getByLabel(/Black/, { exact: true }).hover();
67+
const changedImgEl = await productTile.locator("img");
6868
const changeImgSrc = await changedImgEl.getAttribute("src");
69-
await expect(cableKnitShell.getByText(/From £44\.16/i)).toBeVisible();
69+
await expect(productTile.getByText(/From \$39\.99/i)).toBeVisible();
70+
7071
expect(changeImgSrc).not.toBe(initialSrc);
71-
await cableKnitShell.click();
72+
await productTile.click();
7273

7374
// PDP
7475
await expect(
75-
page.getByRole("heading", { name: /Cable Knit Shell/i })
76+
page.getByRole("heading", { name: /Cotton Turtleneck Sweater/i })
7677
).toBeVisible();
7778
await page.getByRole("radio", { name: "L", exact: true }).click();
7879

7980
await page.locator("button[data-testid='quantity-increment']").click();
8081

81-
// Selected Size and Color texts are broken into multiple elements on the page.
82-
// So we need to look at the page URL to verify selected variants
82+
// // Selected Size and Color texts are broken into multiple elements on the page.
83+
// // So we need to look at the page URL to verify selected variants
8384
const updatedPageURL = await page.url();
8485
const params = updatedPageURL.split("?")[1];
8586
expect(params).toMatch(/size=9LG/i);
86-
expect(params).toMatch(/color=JJ5AAXX/i);
87-
87+
expect(params).toMatch(/color=JJ169XX/i);
8888
await page.getByRole("button", { name: /Add to Cart/i }).click();
8989

9090
const addedToCartModal = page.getByText(/2 items added to cart/i);
9191

9292
await addedToCartModal.waitFor();
9393

9494
await page.getByLabel("Close").click();
95-
95+
// cart
9696
await page.getByLabel(/My cart/i).click();
9797

9898
await expect(
99-
page.getByRole("link", { name: /Cable Knit Shell/i })
99+
page.getByRole("link", { name: /Cotton Turtleneck Sweater/i })
100100
).toBeVisible();
101101

102102
await page.getByRole("link", { name: "Proceed to Checkout" }).click();
@@ -189,6 +189,6 @@ test("Registered shopper can checkout items", async ({ page }) => {
189189
).toBeVisible();
190190
await expect(page.getByText(/2 Items/i)).toBeVisible();
191191
await expect(
192-
page.getByRole("link", { name: /Cable Knit Shell/i })
192+
page.getByRole("link", { name: /Cotton Turtleneck Sweater/i })
193193
).toBeVisible();
194194
});

e2e/tests/mobile/guest-shopper.spec.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,24 +39,24 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
3939
await expect(page.getByRole("heading", { name: "Tops" })).toBeVisible();
4040

4141
// PLP
42-
const cableKnitShell = await page.getByRole("link", {
43-
name: /Cable Knit Shell/i,
42+
const productTile = await page.getByRole("link", {
43+
name: /Cotton Turtleneck Sweater/i,
4444
});
4545
// selecting swatch
46-
const initialImgEl = await cableKnitShell.locator("img");
46+
const initialImgEl = await productTile.locator("img");
4747
const initialSrc = await initialImgEl.getAttribute("src");
48-
await expect(cableKnitShell.getByText(/From £44\.16/i)).toBeVisible();
48+
await expect(productTile.getByText(/From \$39\.99/i)).toBeVisible();
4949

50-
await cableKnitShell.getByLabel(/Ivory/, { exact: true }).click();
51-
const changedImgEl = await cableKnitShell.locator("img");
50+
await productTile.getByLabel(/Black/, { exact: true }).click();
51+
const changedImgEl = await productTile.locator("img");
5252
const changeImgSrc = await changedImgEl.getAttribute("src");
53-
await expect(cableKnitShell.getByText(/From £44\.16/i)).toBeVisible();
53+
await expect(productTile.getByText(/From \$39\.99/i)).toBeVisible();
5454
expect(changeImgSrc).not.toBe(initialSrc);
55-
await cableKnitShell.click();
55+
await productTile.click();
5656

5757
// PDP
5858
await expect(
59-
page.getByRole("heading", { name: /Cable Knit Shell/i })
59+
page.getByRole("heading", { name: /Cotton Turtleneck Sweater/i })
6060
).toBeVisible();
6161
await page.getByRole("radio", { name: "L", exact: true }).click();
6262

@@ -67,7 +67,7 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
6767
const updatedPageURL = await page.url();
6868
const params = updatedPageURL.split("?")[1];
6969
expect(params).toMatch(/size=9LG/i);
70-
expect(params).toMatch(/color=JJ5AAXX/i);
70+
expect(params).toMatch(/color=JJ169XX/i);
7171

7272
await page.getByRole("button", { name: /Add to Cart/i }).click();
7373

@@ -81,7 +81,7 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
8181
await page.getByLabel(/My cart/i).click();
8282

8383
await expect(
84-
page.getByRole("link", { name: /Cable Knit Shell/i })
84+
page.getByRole("link", { name: /Cotton Turtleneck Sweater/i })
8585
).toBeVisible();
8686

8787
await page.getByRole("link", { name: "Proceed to Checkout" }).click();
@@ -171,6 +171,6 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
171171
).toBeVisible();
172172
await expect(page.getByText(/2 Items/i)).toBeVisible();
173173
await expect(
174-
page.getByRole("link", { name: /Cable Knit Shell/i })
174+
page.getByRole("link", { name: /Cotton Turtleneck Sweater/i })
175175
).toBeVisible();
176176
});

e2e/tests/mobile/registered-shopper.spec.js

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,25 +64,23 @@ test("Registered shopper can checkout items", async ({ page }) => {
6464

6565
await expect(page.getByRole("heading", { name: "Tops" })).toBeVisible();
6666
// PLP
67-
const cableKnitShell = await page.getByRole("link", {
68-
name: /Cable Knit Shell/i,
67+
const productTile = await page.getByRole("link", {
68+
name: /Cotton Turtleneck Sweater/i,
6969
});
7070
// selecting swatch
71-
const initialImgEl = await cableKnitShell.locator("img");
71+
const initialImgEl = await productTile.locator("img");
7272
const initialSrc = await initialImgEl.getAttribute("src");
73-
await expect(cableKnitShell.getByText(/From £44\.16/i)).toBeVisible();
73+
await expect(productTile.getByText(/From \$39\.99/i)).toBeVisible();
7474

75-
await cableKnitShell.getByLabel(/Ivory/, { exact: true }).click();
76-
const changedImgEl = await cableKnitShell.locator("img");
75+
await productTile.getByLabel(/Black/, { exact: true }).click();
76+
const changedImgEl = await productTile.locator("img");
7777
const changeImgSrc = await changedImgEl.getAttribute("src");
78-
79-
await expect(cableKnitShell.getByText(/From £44\.16/i)).toBeVisible();
80-
78+
await expect(productTile.getByText(/From \$39\.99/i)).toBeVisible();
8179
expect(changeImgSrc).not.toBe(initialSrc);
82-
await cableKnitShell.click();
80+
await productTile.click();
8381
// PDP
8482
await expect(
85-
page.getByRole("heading", { name: /Cable Knit Shell/i })
83+
page.getByRole("heading", { name: /Cotton Turtleneck Sweater/i })
8684
).toBeVisible();
8785
await page.getByRole("radio", { name: "L", exact: true }).click();
8886

@@ -93,7 +91,7 @@ test("Registered shopper can checkout items", async ({ page }) => {
9391
const updatedPageURL = await page.url();
9492
const params = updatedPageURL.split("?")[1];
9593
expect(params).toMatch(/size=9LG/i);
96-
expect(params).toMatch(/color=JJ5AAXX/i);
94+
expect(params).toMatch(/color=JJ169XX/i);
9795

9896
await page.getByRole("button", { name: /Add to Cart/i }).click();
9997

@@ -107,7 +105,7 @@ test("Registered shopper can checkout items", async ({ page }) => {
107105
await page.getByLabel(/My cart/i).click();
108106

109107
await expect(
110-
page.getByRole("link", { name: /Cable Knit Shell/i })
108+
page.getByRole("link", { name: /Cotton Turtleneck Sweater/i })
111109
).toBeVisible();
112110

113111
await page.getByRole("link", { name: "Proceed to Checkout" }).click();
@@ -199,6 +197,6 @@ test("Registered shopper can checkout items", async ({ page }) => {
199197
).toBeVisible();
200198
await expect(page.getByText(/2 Items/i)).toBeVisible();
201199
await expect(
202-
page.getByRole("link", { name: /Cable Knit Shell/i })
200+
page.getByRole("link", { name: /Cotton Turtleneck Sweater/i })
203201
).toBeVisible();
204202
});

packages/template-retail-react-app/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
### Bug Fixes
3030

3131
- Fix seo component not settings keywords meta tag [#1762](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1762)
32+
- Fix RecommendedProducts' toggling of the favourite icon [#1861](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1861)
3233

3334

3435
## v2.4.1 (Apr 17, 2024)

packages/template-retail-react-app/app/components/recommended-products/index.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ const RecommendedProducts = ({zone, recommender, products, title, shouldFetch, .
197197
isFavourite: wishlist?.customerProductListItems?.some(
198198
(item) => item.productId === product?.productId
199199
),
200-
onFavouriteToggle: (isFavourite) => {
201-
const action = isFavourite ? removeItemFromWishlist : addItemToWishlist
200+
onFavouriteToggle: (toBeFavourite) => {
201+
const action = toBeFavourite ? addItemToWishlist : removeItemFromWishlist
202202
return action(product)
203203
}
204204
})}

packages/template-retail-react-app/app/pages/product-list/index.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -582,8 +582,8 @@ const ProductList = (props) => {
582582
)
583583
}
584584
}}
585-
onFavouriteToggle={(isFavourite) => {
586-
const action = isFavourite
585+
onFavouriteToggle={(toBeFavourite) => {
586+
const action = toBeFavourite
587587
? addItemToWishlist
588588
: removeItemFromWishlist
589589
return action(productSearchItem)

0 commit comments

Comments
 (0)