@@ -15,45 +15,62 @@ const {
1515const GUEST_USER_CREDENTIALS = generateUserCredentials ( ) ;
1616
1717test ( "Guest shopper can checkout items as guest" , async ( { page } ) => {
18+ // home page
1819 await page . goto ( config . RETAIL_APP_HOME ) ;
1920
2021 await page . getByRole ( "link" , { name : "Womens" } ) . hover ( ) ;
22+ const topsNav = await page . getByRole ( "link" , { name : "Tops" , exact : true } ) ;
23+ await expect ( topsNav ) . toBeVisible ( ) ;
2124
22- await page . getByRole ( "link" , { name : "Tops" } ) . click ( ) ;
25+ await topsNav . click ( ) ;
26+ // PLP
27+ const cableKnitShell = await page . getByRole ( "link" , {
28+ name : / C a b l e K n i t S h e l l / i,
29+ } ) ;
30+ // selecting swatch
31+ const initialImgEl = await cableKnitShell . locator ( "img" ) ;
32+ const initialSrc = await initialImgEl . getAttribute ( "src" ) ;
2333
24- await expect ( page . getByRole ( "heading" , { name : "Tops" } ) ) . toBeVisible ( ) ;
34+ await expect ( cableKnitShell . getByText ( / F r o m £ 4 4 \. 1 6 / i ) ) . toBeVisible ( ) ;
2535
26- await page . getByRole ( "link" , { name : / S t r i p e S h e l l / i } ) . click ( ) ;
36+ await cableKnitShell . getByLabel ( / I v o r y / , { exact : true } ) . hover ( ) ;
37+ const changedImgEl = await cableKnitShell . locator ( "img" ) ;
38+ const changeImgSrc = await changedImgEl . getAttribute ( "src" ) ;
39+ await expect ( cableKnitShell . getByText ( / F r o m £ 4 4 \. 1 6 / i) ) . toBeVisible ( ) ;
2740
41+ expect ( changeImgSrc ) . not . toBe ( initialSrc ) ;
42+ await cableKnitShell . click ( ) ;
43+ // PDP
2844 await expect (
29- page . getByRole ( "heading" , { name : / S t r i p e S h e l l / i } )
45+ page . getByRole ( "heading" , { name : / C a b l e K n i t S h e l l / i } )
3046 ) . toBeVisible ( ) ;
31-
3247 await page . getByRole ( "radio" , { name : "L" , exact : true } ) . click ( ) ;
3348
3449 await page . locator ( "button[data-testid='quantity-increment']" ) . click ( ) ;
3550
36- // Selected Size and Color texts are broken into multiple elements on the page.
37- // So we need to look at the page URL to verify selected variants
51+ // // Selected Size and Color texts are broken into multiple elements on the page.
52+ // // So we need to look at the page URL to verify selected variants
3853 const updatedPageURL = await page . url ( ) ;
3954 const params = updatedPageURL . split ( "?" ) [ 1 ] ;
4055 expect ( params ) . toMatch ( / s i z e = 9 L G / i) ;
41- expect ( params ) . toMatch ( / c o l o r = J J 5 Y P A 7 / i) ;
42-
56+ expect ( params ) . toMatch ( / c o l o r = J J 5 A A X X / i) ;
4357 await page . getByRole ( "button" , { name : / A d d t o C a r t / i } ) . click ( ) ;
4458
4559 const addedToCartModal = page . getByText ( / 2 i t e m s a d d e d t o c a r t / i) ;
4660
4761 await addedToCartModal . waitFor ( ) ;
4862
4963 await page . getByLabel ( "Close" ) . click ( ) ;
50-
64+ // cart
5165 await page . getByLabel ( / M y c a r t / i) . click ( ) ;
5266
53- await expect ( page . getByRole ( "link" , { name : / S t r i p e S h e l l / i } ) ) . toBeVisible ( ) ;
67+ await expect (
68+ page . getByRole ( "link" , { name : / C a b l e K n i t S h e l l / i } )
69+ ) . toBeVisible ( ) ;
5470
5571 await page . getByRole ( "link" , { name : "Proceed to Checkout" } ) . click ( ) ;
5672
73+ // checkout
5774 await expect (
5875 page . getByRole ( "heading" , { name : / C o n t a c t I n f o / i } )
5976 ) . toBeVisible ( ) ;
@@ -123,6 +140,7 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
123140 . first ( )
124141 . click ( ) ;
125142
143+ // order confirmation
126144 const orderConfirmationHeading = page . getByRole ( "heading" , {
127145 name : / T h a n k y o u f o r y o u r o r d e r ! / i,
128146 } ) ;
@@ -132,5 +150,7 @@ test("Guest shopper can checkout items as guest", async ({ page }) => {
132150 page . getByRole ( "heading" , { name : / O r d e r S u m m a r y / i } )
133151 ) . toBeVisible ( ) ;
134152 await expect ( page . getByText ( / 2 I t e m s / i) ) . toBeVisible ( ) ;
135- await expect ( page . getByRole ( "link" , { name : / S t r i p e S h e l l / i } ) ) . toBeVisible ( ) ;
153+ await expect (
154+ page . getByRole ( "link" , { name : / C a b l e K n i t S h e l l / i } )
155+ ) . toBeVisible ( ) ;
136156} ) ;
0 commit comments