1+ import { test , expect } from '@playwright/test'
2+ import { BASE_URL , USERNAME , PASSWORD } from '../../utils/envConfig'
3+ import { ProductPage } from '../../pages/ProductPage'
4+ import { LoginPage } from '../../pages/LoginPage'
5+ import { LoginLocators } from '../../locators/LoginLocators'
6+ import { CartPage } from '../../pages/CartPage'
7+ import { CheckoutPage } from '../../pages/CheckoutPage'
8+ import { checckoutData } from '../../test-data/checkoutData'
9+ import { productsToCart } from '../../test-data/products'
10+ import { CheckoutOverviewPage } from '../../pages/CheckoutOverviewPage'
11+ import { FinalPage } from '../../pages/FinalPage'
12+
13+
14+ test . describe ( "E2E End Page Validation" , ( ) => {
15+ let loginPage : LoginPage
16+ let productPage : ProductPage
17+ let cartPage : CartPage
18+ let checkoutPage : CheckoutPage
19+ let checkoutOverview : CheckoutOverviewPage
20+ let finalPage : FinalPage
21+
22+ test . beforeEach ( async ( { page } ) => {
23+ loginPage = new LoginPage ( page ) ;
24+ productPage = new ProductPage ( page ) ;
25+ cartPage = new CartPage ( page )
26+ checkoutPage = new CheckoutPage ( page )
27+ checkoutOverview = new CheckoutOverviewPage ( page )
28+ finalPage = new FinalPage ( page ) ;
29+
30+ await page . goto ( BASE_URL ) ;
31+ await loginPage . login ( USERNAME , PASSWORD ) ;
32+
33+ await expect ( page ) . toHaveURL ( "https://www.saucedemo.com/inventory.html" ) ;
34+
35+ await productPage . getSpecificProductDetails ( productsToCart ) ;
36+ await productPage . clickOnCartLink ( ) ;
37+ await cartPage . clickCheckoutButton ( ) ;
38+ await checkoutPage . fillCheckoutDetail ( checckoutData . firstName , checckoutData . lastName , checckoutData . postalCode ) ;
39+ await checkoutPage . clickOnContinue ( ) ;
40+ await checkoutOverview . clickOnFinish ( ) ;
41+ } )
42+
43+ test ( "Validate checkout overview page UI and url" , async ( { page} ) =>
44+ {
45+ await expect ( page ) . toHaveURL ( "https://www.saucedemo.com/checkout-complete.html" )
46+ const elements = await finalPage . getFinalPageElements ( ) ;
47+ await expect ( elements . backHomeBtn ) . toBeVisible ( )
48+ await expect ( elements . successMsg ) . toBeVisible ( )
49+ await expect ( elements . pageInfo ) . toBeVisible ( )
50+ } )
51+
52+ test ( "Validate the Success Message" , async ( { page} ) =>
53+ {
54+ const message = await finalPage . getSuccessMsgText ( ) ;
55+ expect ( message ) . toBe ( "Thank you for your order!" )
56+ } )
57+ test ( "Validate BackHomeButton" , async ( { page} ) =>
58+ {
59+ await finalPage . clickOnBackHomeBtn ( ) ;
60+ await expect ( page ) . toHaveURL ( "https://www.saucedemo.com/inventory.html" )
61+ } )
62+ test ( "Validate BackHomeButton 1" , async ( { page} ) =>
63+ {
64+ await finalPage . clickOnBackHomeBtn ( ) ;
65+ await expect ( page ) . toHaveURL ( "https://www.saucedemo.com/inventory.html" )
66+ } )
67+ test ( "Validate BackHomeButton 2" , async ( { page} ) =>
68+ {
69+ await finalPage . clickOnBackHomeBtn ( ) ;
70+ await expect ( page ) . toHaveURL ( "https://www.saucedemo.com/inventory.html" )
71+ } )
72+ test ( "Validate BackHomeButton 4" , async ( { page} ) =>
73+ {
74+ await finalPage . clickOnBackHomeBtn ( ) ;
75+ await expect ( page ) . toHaveURL ( "https://www.saucedemo.com/inventory.html" )
76+ } )
77+ test ( "End to Test Validate BackHomeButton 1" , async ( { page} ) =>
78+ {
79+ await finalPage . clickOnBackHomeBtn ( ) ;
80+ await expect ( page ) . toHaveURL ( "https://www.saucedemo.com/inventory.html" )
81+ } )
82+
83+ } )
0 commit comments