From 185f2122a6465db1e4f76ec354e329922d4fe9b3 Mon Sep 17 00:00:00 2001 From: najeeb1023 Date: Sun, 25 Aug 2024 14:37:46 +0200 Subject: [PATCH 1/3] feat: userCheckout workflow WIP, shipping method added. --- src/test/features/UserShoppingByWear.feature | 2 ++ src/test/pages/UserShoppingByWear.ts | 17 +++++++++++++++-- src/test/resources/userShoppingPageByWear.json | 4 ++++ src/test/steps/userShoppingByWearStepDef.ts | 6 +++++- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/test/features/UserShoppingByWear.feature b/src/test/features/UserShoppingByWear.feature index b6666e9..984a9e6 100644 --- a/src/test/features/UserShoppingByWear.feature +++ b/src/test/features/UserShoppingByWear.feature @@ -14,6 +14,7 @@ Feature: Verify that the user is able to purchase some item. And The details of the product are shown and user adds the product in their cart. And User navigates to checkout page. And User enters "", "", "", "
", "", "", "", "" and "" + And User selects a shipping method. Examples: | Section | Attire | EmailAddress | FirstName | LastName | Address | City | State | ZipCode | Country | PhoneNumber | @@ -26,6 +27,7 @@ Feature: Verify that the user is able to purchase some item. And The details of the product are shown and user adds the product in their cart. And User navigates to checkout page. And User enters "", "", "", "
", "", "", "", "" and "" + And User selects a shipping method. Examples: | Section | Attire | EmailAddress | FirstName | LastName | Address | City | State | ZipCode | Country | PhoneNumber | diff --git a/src/test/pages/UserShoppingByWear.ts b/src/test/pages/UserShoppingByWear.ts index 6002053..530dc1f 100644 --- a/src/test/pages/UserShoppingByWear.ts +++ b/src/test/pages/UserShoppingByWear.ts @@ -40,7 +40,11 @@ import { Page, expect } from "@playwright/test"; public async enterUserCheckoutDetails(emailAddress: string, firstName: string, lastName: string, streetAddress: string, city: string, state: string, zipcode: string, country: string, phoneNumber: string){ await this.userShoppingByWear.fillCheckoutForm(emailAddress, firstName, lastName, streetAddress, city, state, zipcode, country, phoneNumber); - } + }; + + public async shippingMethodSelection(){ + await this.userShoppingByWear.selectShippingMethod(); + }; }; export class UserShoppingByWear { @@ -79,7 +83,8 @@ import { Page, expect } from "@playwright/test"; zipCode:() => pageFixture.page.locator(getResource('zipCode').selectorValue), country:() => pageFixture.page.locator(getResource('country').selectorValue), phoneNumber:() => pageFixture.page.locator(getResource('phoneNumber').selectorValue), - nextBtn:() => pageFixture.page.locator(getResource('nextBtn').selectorValue) + nextBtn:() => pageFixture.page.locator(getResource('nextBtn').selectorValue), + selectShippingBtn:() => pageFixture.page.locator(getResource('selectShippingBtn').selectorValue) }; @@ -199,4 +204,12 @@ import { Page, expect } from "@playwright/test"; await this.userShoppingByWearByWearLocators.nextBtn().scrollIntoViewIfNeeded(); await this.userShoppingByWearByWearLocators.nextBtn().click(); }; + + public async selectShippingMethod():Promise { + // await this.userShoppingByWearByWearLocators.selectShippingBtn() + const getShippingMethods = await this.userShoppingByWearByWearLocators.selectShippingBtn().count(); + console.log("Shipping methods found -> ", getShippingMethods); + + // await (pageFixture.page.locator(getResource('selectShippingBtn').selectorValue.replace('FLAG', 'tes1'))); + }; }; \ No newline at end of file diff --git a/src/test/resources/userShoppingPageByWear.json b/src/test/resources/userShoppingPageByWear.json index 100d787..de21225 100644 --- a/src/test/resources/userShoppingPageByWear.json +++ b/src/test/resources/userShoppingPageByWear.json @@ -109,6 +109,10 @@ { "elementName": "nextBtn", "selectorValue": "//button[contains(@class,'button action continue primary')]" + }, + { + "elementName": "selectShippingBtn", + "selectorValue": "//tbody//tr" } ] } \ No newline at end of file diff --git a/src/test/steps/userShoppingByWearStepDef.ts b/src/test/steps/userShoppingByWearStepDef.ts index 390dffd..0d8577f 100644 --- a/src/test/steps/userShoppingByWearStepDef.ts +++ b/src/test/steps/userShoppingByWearStepDef.ts @@ -22,6 +22,10 @@ When("User navigates to checkout page.", async function (){ await categoryAndProductSectionFacade.userItemCheckout(); }); -Then("User enters {string}, {string}, {string}, {string}, {string}, {string}, {string}, {string} and {string}", async function (emailAddress: string, firstName: string, lastName: string, streetAddress: string, city: string, state: string, zipcode: string, country: string, phoneNumber: string){ +When("User enters {string}, {string}, {string}, {string}, {string}, {string}, {string}, {string} and {string}", async function (emailAddress: string, firstName: string, lastName: string, streetAddress: string, city: string, state: string, zipcode: string, country: string, phoneNumber: string){ await categoryAndProductSectionFacade.enterUserCheckoutDetails(emailAddress, firstName, lastName, streetAddress, city, state, zipcode, country, phoneNumber); }); + +When("User selects a shipping method.", async function () { + await categoryAndProductSectionFacade.shippingMethodSelection(); +}); From c6a0a5c3f730d5c98e73cb68f606c465dcb32e88 Mon Sep 17 00:00:00 2001 From: najeeb1023 Date: Sun, 25 Aug 2024 14:45:34 +0200 Subject: [PATCH 2/3] fix: fixed pipeline and seperated jobs. --- .github/workflows/playwright.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index aac7c3c..0f61339 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -5,7 +5,7 @@ on: pull_request: jobs: - CucumberTests-Job: + build: timeout-minutes: 60 runs-on: ubuntu-latest steps: @@ -17,6 +17,11 @@ jobs: run: npm ci - name: Install Playwright Chromium run: npx playwright install chromium + + cucumberTests-job: + timeout-minutes: 60 + runs-on: ubuntu-latest + steps: - name: Cucumber-Tests run: npm run cucumber:luma - uses: actions/upload-artifact@v4 From f279373df97b7bd93330b94c8bb70bac8c5b66c9 Mon Sep 17 00:00:00 2001 From: najeeb1023 Date: Sun, 25 Aug 2024 14:49:05 +0200 Subject: [PATCH 3/3] Commit reverted due to pipeline issue. --- .github/workflows/playwright.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 0f61339..aac7c3c 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -5,7 +5,7 @@ on: pull_request: jobs: - build: + CucumberTests-Job: timeout-minutes: 60 runs-on: ubuntu-latest steps: @@ -17,11 +17,6 @@ jobs: run: npm ci - name: Install Playwright Chromium run: npx playwright install chromium - - cucumberTests-job: - timeout-minutes: 60 - runs-on: ubuntu-latest - steps: - name: Cucumber-Tests run: npm run cucumber:luma - uses: actions/upload-artifact@v4