diff --git a/azure-pipelines-automated-testing.yml b/azure-pipelines-automated-testing.yml index bc2726ba..8defd878 100644 --- a/azure-pipelines-automated-testing.yml +++ b/azure-pipelines-automated-testing.yml @@ -20,7 +20,7 @@ variables: # - group: Digital-Infrastructure # - group: ISS-BuildBranches - group: SafelitePlaywright - - group: ISSNextgenRegressionAutomationPlaywright + - group: DigitalCommercialPlaywrightAutomation - name: dockerImageName value: 'playwright-tests' - name: imageTag @@ -53,4 +53,6 @@ stages: npmrcPath: 'playwright-tests/.npmrc' secrets: CCIS_API_AUTH: $(CCIS_API_AUTH) - JIRA_API_KEY: $(JIRA_API_KEY) \ No newline at end of file + JIRA_API_KEY: $(JIRA_API_KEY) + JIRA_USERNAME: $(JIRA_USERNAME) + JIRA_SERVER: $(JIRA_SERVER) \ No newline at end of file diff --git a/playwright-tests/business-logic/types/Enums.ts b/playwright-tests/business-logic/types/Enums.ts index da4f2f1e..73e0f887 100644 --- a/playwright-tests/business-logic/types/Enums.ts +++ b/playwright-tests/business-logic/types/Enums.ts @@ -154,7 +154,8 @@ export enum BailoutCode { ApplicationError = 14, ApiError = 15, RouterError = 16, - CoverageCancelledByUser = 17 + CoverageCancelledByUser = 17, + NeedHelp = 18 } export enum SignatureAlgorithm { diff --git a/playwright-tests/pages/OrderConfirmationPage.ts b/playwright-tests/pages/OrderConfirmationPage.ts index 7ec6b4a0..128aa9cd 100644 --- a/playwright-tests/pages/OrderConfirmationPage.ts +++ b/playwright-tests/pages/OrderConfirmationPage.ts @@ -181,7 +181,7 @@ export class OrderConfirmationPage extends BasePage { const appointmentTypeValue = await this.appointmentTypeText.textContent(); const apptDetailsValue = await this.apptDetailsText.textContent(); - if (appointmentTypeValue?.includes('going to a Safelite shop') && apptDetailsValue?.includes('Drop off before 9:30 AM')) { + if (appointmentTypeValue?.includes('going to a Safelite shop') && apptDetailsValue?.includes('Drop off by 9:30 AM. Pick-up time dependent on shop schedule')) { expect.soft(appointmentType).toEqual('Dropoff'); } else if (appointmentTypeValue?.includes('going to a Safelite shop')) { expect.soft(appointmentType).toEqual('Inshop'); diff --git a/playwright-tests/tests/0000__M.test.ts b/playwright-tests/tests/0000__M.test.ts index 787b5704..efb3ccaa 100644 --- a/playwright-tests/tests/0000__M.test.ts +++ b/playwright-tests/tests/0000__M.test.ts @@ -9,8 +9,8 @@ import essentialReplaceTestCases from "./0013_EssentialReplace"; import { BailoutCode, ServiceLocation, VehicleDamage, VehicleLookupType } from "@business-logic/types/Enums"; import essentialTpaNotEnabledTestCases from "./0003_EssentialTpaNotEnabledBailout"; import essentialDoNotSeeShopTestCases from "./0011_EssentialDoNotSeeShopBailout"; -import essentialVehicleNotFoundTestCases from "./0010_EssentialVehicleNotFoundBailout"; -import essentialPartsServiceErrorBailout_0009 from "./0009_EssentialPartsServiceErrorBailout"; +import essentialVehicleNotFoundVINLookupTests from "./0010_EssentialVehicleNotFoundVinLookup"; +import essentialReplaceNonAdasTests from "./0009_EssentialReplaceNonAdas"; import essentialRepairMobileTests from "./0014_EssentialRepairMobile"; import essentialReplacePartsQuestionsDropoff_0015 from "./0015_EssentialReplacePartsQuestionsDropoff"; import essentialUniqueGlassTests from "./0012_EssentialUniqueGlass"; @@ -19,11 +19,11 @@ import essentialTpaEnabled_0004 from "./0004_EssentialTpaEnabled"; import essentialRepairMobileHyundaiTests from "./0007_EssentialRepairHyundaiMobile"; import essentialTpaNotEnabledReplace_0017 from "./0017_EssentialTpaNotEnabledBailoutReplace"; import essentialTpaEnabledReplace_0018 from "./0018_EssentialTpaEnabledReplace"; -import essentialTpaEnabledReplaceRecal_0019 from "./0019_EssentialTpaEnabledReplaceRecal"; +import essentialTpaEnabledReplaceAdasTests from "./0019_EssentialTpaEnabledReplaceAdas"; import advancedScenario0001TestCases from "./advanced/0001a_ReplaceInShopCredit"; import advancedScenario0003TestCases from "./advanced/0003a_MobileAfterpay"; import essentialReplaceDynamicAdasTests from "./0005_EssentialReplaceDynamicAdas"; -import essentialReplaceStaticAdasTests from "./0001_EssentialReplaceStatisAdas"; +import essentialReplaceStaticAdasTests from "./0001_EssentialReplaceStaticAdas"; import essentialPartQuestionsAndNotShareVinTests from "./0020_EssentialPartQuestionsAndNotShareVin"; import essentialServiceableBigTruckTestCases from "./0022_EssentialServiceableBigTruck"; import essentialNonServiceableBigTruckTestCases from "./0023_EssentialNonServiceableBigTruck"; @@ -74,8 +74,8 @@ test.describe.parallel('ISS QA Automation Regression', () => { addSmokeTagToRandomTest(essentialTpaEnabled_0004); addSmokeTagToRandomTest(essentialReplaceDynamicAdasTests); addSmokeTagToRandomTest(essentialRepairMobileHyundaiTests); - addSmokeTagToRandomTest(essentialVehicleNotFoundTestCases); - addSmokeTagToRandomTest(essentialPartsServiceErrorBailout_0009); + addSmokeTagToRandomTest(essentialVehicleNotFoundVINLookupTests); + addSmokeTagToRandomTest(essentialReplaceNonAdasTests); addSmokeTagToRandomTest(essentialDoNotSeeShopTestCases); addSmokeTagToRandomTest(essentialUniqueGlassTests); addSmokeTagToRandomTest(essentialReplaceTestCases); @@ -84,7 +84,7 @@ test.describe.parallel('ISS QA Automation Regression', () => { addSmokeTagToRandomTest(essentialHpTestCases); addSmokeTagToRandomTest(essentialTpaNotEnabledReplace_0017); addSmokeTagToRandomTest(essentialTpaEnabledReplace_0018); - addSmokeTagToRandomTest(essentialTpaEnabledReplaceRecal_0019); + addSmokeTagToRandomTest(essentialTpaEnabledReplaceAdasTests); addSmokeTagToRandomTest(essentialPartQuestionsAndNotShareVinTests); addSmokeTagToRandomTest(essentialServiceableBigTruckTestCases); addSmokeTagToRandomTest(essentialNonServiceableBigTruckTestCases); @@ -116,11 +116,11 @@ test.describe.parallel('ISS QA Automation Regression', () => { test(...prepareTest(testCase, run, options, ruleEngine)); } //Scenario 9 - for (const testCase of essentialPartsServiceErrorBailout_0009) { + for (const testCase of essentialReplaceNonAdasTests) { test(...prepareTest(testCase, run, options, ruleEngine)); } //Scenario 10 - for (const testCase of essentialVehicleNotFoundTestCases) { + for (const testCase of essentialVehicleNotFoundVINLookupTests) { test(...prepareTest(testCase, run, options, ruleEngine)); } //Scenario 11 @@ -156,7 +156,7 @@ test.describe.parallel('ISS QA Automation Regression', () => { test(...prepareTest(testCase, run, options, ruleEngine)); } //Scenario 19 - for (const testCase of essentialTpaEnabledReplaceRecal_0019) { + for (const testCase of essentialTpaEnabledReplaceAdasTests) { test(...prepareTest(testCase, run, options, ruleEngine)); } //Scenario 20 diff --git a/playwright-tests/tests/0001_EssentialReplaceStatisAdas.ts b/playwright-tests/tests/0001_EssentialReplaceStaticAdas.ts similarity index 97% rename from playwright-tests/tests/0001_EssentialReplaceStatisAdas.ts rename to playwright-tests/tests/0001_EssentialReplaceStaticAdas.ts index f3a4588a..2000604a 100644 --- a/playwright-tests/tests/0001_EssentialReplaceStatisAdas.ts +++ b/playwright-tests/tests/0001_EssentialReplaceStaticAdas.ts @@ -60,7 +60,7 @@ for (const client of essentialClients) { data.clientTag = client.clientTag; data.isAuthenticationRequired = client.clientFlags.isAuthenticationEnabled ?? false const tc = new TestCase({ - name: `0001 Essential Replace Statis ADAS Client: "${client.accountName}"`, + name: `0001 Essential Replace Static ADAS Client: "${client.accountName}"`, tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Essentials','@0001', '@test_report'], testData: data }, undefined, '0001'); diff --git a/playwright-tests/tests/0002_EssentialRepairInShopAcura.ts b/playwright-tests/tests/0002_EssentialRepairInShopAcura.ts index 82702b83..0fd20698 100644 --- a/playwright-tests/tests/0002_EssentialRepairInShopAcura.ts +++ b/playwright-tests/tests/0002_EssentialRepairInShopAcura.ts @@ -60,7 +60,7 @@ for (const client of essentialClients) { data.clientTag = client.clientTag; data.isAuthenticationRequired = client.clientFlags.isAuthenticationEnabled ?? false const tc = new TestCase({ - name: `0002 Essential Repair Mobile Client: "${client.accountName}"`, + name: `0002 Essential Repair Inshop Client: "${client.accountName}"`, tags: [`@${client.clientTag}`, `@${client.accountName}`,'@Essentials'], testData: data }, undefined, '0002'); diff --git a/playwright-tests/tests/0005_EssentialReplaceDynamicAdas.ts b/playwright-tests/tests/0005_EssentialReplaceDynamicAdas.ts index 0975925b..468328c5 100644 --- a/playwright-tests/tests/0005_EssentialReplaceDynamicAdas.ts +++ b/playwright-tests/tests/0005_EssentialReplaceDynamicAdas.ts @@ -12,7 +12,7 @@ const essentialReplaceDynamicAdasData: Partial = { isDuplicateClaim: false, isPolicyFound: false, endorsements: [], - isReplace: false, + isReplace: true, partQuestions: undefined, isSafelite: true, servicePackage: ServicePackage.Premium, diff --git a/playwright-tests/tests/0009_EssentialPartsServiceErrorBailout.ts b/playwright-tests/tests/0009_EssentialReplaceNonAdas.ts similarity index 74% rename from playwright-tests/tests/0009_EssentialPartsServiceErrorBailout.ts rename to playwright-tests/tests/0009_EssentialReplaceNonAdas.ts index 8da3a486..bff58f2d 100644 --- a/playwright-tests/tests/0009_EssentialPartsServiceErrorBailout.ts +++ b/playwright-tests/tests/0009_EssentialReplaceNonAdas.ts @@ -7,7 +7,7 @@ import { getNextWeekday } from "@impl/utils/DateUtils"; const nextWeekday = getNextWeekday(); -const essentialPartsServiceErrorData: Partial = { +const essentialReplaceNonAdasData: Partial = { clientTag: 'ALL_ESSENTIAL', isDuplicateClaim: false, isPolicyFound: false, @@ -48,15 +48,7 @@ const essentialPartsServiceErrorData: Partial = { vehicleLookupType: VehicleLookupType.Vin }, vehicleDamage: [ - // VehicleDamage.WindshieldThreeChips, VehicleDamage.WindshieldCrack, - // VehicleDamage.DriverFrontDoor, - // VehicleDamage.DriverQuarterPanel, - // VehicleDamage.DriverRearDoor, - // VehicleDamage.PassengerFrontDoor, - // VehicleDamage.PassengerQuarterPanel, - // VehicleDamage.PassengerRearDoor, - // VehicleDamage.RearWindow ], appointmentDetails: { serviceLocation: ServiceLocation.InShop, @@ -67,17 +59,17 @@ const essentialPartsServiceErrorData: Partial = { } const essentialClients = ClientData.getEssentialClients(); -const essentialPartsServiceErrorBailout_0009: TestCase[] = []; +const essentialReplaceNonAdasTests: TestCase[] = []; for (const client of essentialClients) { - const data = {...essentialPartsServiceErrorData}; + const data = {...essentialReplaceNonAdasData}; data.clientTag = client.clientTag; data.isAuthenticationRequired = client.clientFlags.isAuthenticationEnabled ?? false const tc = new TestCase({ - name: `0009 Essential Parts Service Error Client: "${client.accountName}"`, - tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Bailout', '@PartsServiceError', '@Essentials','@0009'], + name: `0009 Essential Replace Non ADAS Client: "${client.accountName}"`, + tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Essentials','@0009'], testData: data }, undefined, '0009'); - essentialPartsServiceErrorBailout_0009.push(tc); + essentialReplaceNonAdasTests.push(tc); } -export default essentialPartsServiceErrorBailout_0009; \ No newline at end of file +export default essentialReplaceNonAdasTests; \ No newline at end of file diff --git a/playwright-tests/tests/0010_EssentialVehicleNotFoundBailout.ts b/playwright-tests/tests/0010_EssentialVehicleNotFoundVinLookup.ts similarity index 74% rename from playwright-tests/tests/0010_EssentialVehicleNotFoundBailout.ts rename to playwright-tests/tests/0010_EssentialVehicleNotFoundVinLookup.ts index 7b009118..33545c90 100644 --- a/playwright-tests/tests/0010_EssentialVehicleNotFoundBailout.ts +++ b/playwright-tests/tests/0010_EssentialVehicleNotFoundVinLookup.ts @@ -7,7 +7,7 @@ import { getNextWeekday } from "@impl/utils/DateUtils"; const nextWeekday = getNextWeekday(); -const essentialVehicleNotFoundData: Partial = { +const essentialVehicleNotFoundVINLookupData: Partial = { clientTag: 'ALL_ESSENTIAL', isDuplicateClaim: false, isPolicyFound: false, @@ -48,15 +48,7 @@ const essentialVehicleNotFoundData: Partial = { vehicleLookupType: VehicleLookupType.Vin }, vehicleDamage: [ - // VehicleDamage.WindshieldThreeChips, VehicleDamage.WindshieldCrack, - // VehicleDamage.DriverFrontDoor, - // VehicleDamage.DriverQuarterPanel, - // VehicleDamage.DriverRearDoor, - // VehicleDamage.PassengerFrontDoor, - // VehicleDamage.PassengerQuarterPanel, - // VehicleDamage.PassengerRearDoor, - // VehicleDamage.RearWindow ], appointmentDetails: { serviceLocation: ServiceLocation.InShop, @@ -67,17 +59,17 @@ const essentialVehicleNotFoundData: Partial = { } const essentialClients = ClientData.getEssentialClients(); -const essentialVehicleNotFoundTestCases: TestCase[] = []; +const essentialVehicleNotFoundVINLookupTests: TestCase[] = []; for (const client of essentialClients) { - const data = {...essentialVehicleNotFoundData}; + const data = {...essentialVehicleNotFoundVINLookupData}; data.clientTag = client.clientTag; data.isAuthenticationRequired = client.clientFlags.isAuthenticationEnabled ?? false const tc = new TestCase({ - name: `0010 Essential Vehicle Not Found Bailout Client: "${client.accountName}"`, - tags: [`@${client.clientTag}`, `@${client.accountName}`,'@Essentials', '@Bailout', '@VehicleNotFound'], + name: `0010 Essential Vehicle Not Found VIN Lookup Client: "${client.accountName}"`, + tags: [`@${client.clientTag}`, `@${client.accountName}`,'@Essentials', '@VehicleNotFound'], testData: data - }, undefined, '0001'); - essentialVehicleNotFoundTestCases.push(tc); + }, undefined, '0010'); + essentialVehicleNotFoundVINLookupTests.push(tc); } -export default essentialVehicleNotFoundTestCases; \ No newline at end of file +export default essentialVehicleNotFoundVINLookupTests; \ No newline at end of file diff --git a/playwright-tests/tests/0012_EssentialUniqueGlass.ts b/playwright-tests/tests/0012_EssentialUniqueGlass.ts index bff695b5..0ad3253f 100644 --- a/playwright-tests/tests/0012_EssentialUniqueGlass.ts +++ b/playwright-tests/tests/0012_EssentialUniqueGlass.ts @@ -14,7 +14,7 @@ const essentialUnqiqueGlassData: Partial = { endorsements: [], isReplace: false, isSafelite: true, - servicePackage: faker.helpers.enumValue(ServicePackage), + servicePackage: ServicePackage.GlassOnly, customerDetails: { firstName: faker.person.firstName(), lastName: faker.person.lastName(), @@ -51,12 +51,12 @@ const essentialUnqiqueGlassData: Partial = { { partQuestionType: PartQuestionType.WindshieldColor, isOnPage: true, - optionToSelect: 'Third Visor Frit' + optionToSelect: '3rd Visor Frit' }, { partQuestionType: PartQuestionType.DriverSideColor, isOnPage: true, - optionToSelect: 'Solar, Driver side, Rear, Movable, Exc. 118" Wb, Aftermarket' + optionToSelect: 'Solar~left~rear~movable~exc. 118" Wb~aftermarket' }, ], appointmentDetails: { diff --git a/playwright-tests/tests/0015_EssentialReplacePartsQuestionsDropoff.ts b/playwright-tests/tests/0015_EssentialReplacePartsQuestionsDropoff.ts index 0c2314f8..6e615184 100644 --- a/playwright-tests/tests/0015_EssentialReplacePartsQuestionsDropoff.ts +++ b/playwright-tests/tests/0015_EssentialReplacePartsQuestionsDropoff.ts @@ -58,7 +58,6 @@ const essentialReplaceData: Partial = { }, vehicleDamage: [ VehicleDamage.WindshieldCrack, - // VehicleDamage.DriverFrontDoor, ], appointmentDetails: { serviceLocation: ServiceLocation.DropOff, @@ -74,7 +73,7 @@ for (const client of essentialClients) { data.clientTag = client.clientTag; data.isAuthenticationRequired = client.clientFlags.isAuthenticationEnabled ?? false const tc = new TestCase({ - name: `0015 Essential Replace Client: "${client.accountName}"`, + name: `0015 Essential Replace Parts Questions Drop-Off Client: "${client.accountName}"`, tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Essentials','@0015'], testData: data }, undefined, '0015'); diff --git a/playwright-tests/tests/0016_EssentialRepairInShop.ts b/playwright-tests/tests/0016_EssentialRepairInShop.ts index 27022ac5..b6d5f403 100644 --- a/playwright-tests/tests/0016_EssentialRepairInShop.ts +++ b/playwright-tests/tests/0016_EssentialRepairInShop.ts @@ -15,7 +15,7 @@ const essentialHappyPathData: Partial = { isReplace: false, partQuestions: undefined, isSafelite: true, - servicePackage: faker.helpers.enumValue(ServicePackage), + servicePackage: ServicePackage.GlassOnly, customerDetails: { firstName: faker.person.firstName(), lastName: faker.person.lastName(), diff --git a/playwright-tests/tests/0018_EssentialTpaEnabledReplace.ts b/playwright-tests/tests/0018_EssentialTpaEnabledReplace.ts index d6bed423..3b505c73 100644 --- a/playwright-tests/tests/0018_EssentialTpaEnabledReplace.ts +++ b/playwright-tests/tests/0018_EssentialTpaEnabledReplace.ts @@ -75,7 +75,7 @@ for (const client of essentialClients) { data.clientTag = client.clientTag; data.isAuthenticationRequired = client.clientFlags.isAuthenticationEnabled ?? false const tc = new TestCase({ - name: `0018 Essential TPA Enabled Client-TPA happy path: "${client.accountName}"`, + name: `0018 Essential TPA Enabled Happy Path Client: "${client.accountName}"`, tags: [`@${client.clientTag}`, `@${client.accountName}`, '@TpaEnabled', '@Essentials','@0018'], testData: data }, undefined, '0018'); diff --git a/playwright-tests/tests/0019_EssentialTpaEnabledReplaceRecal.ts b/playwright-tests/tests/0019_EssentialTpaEnabledReplaceAdas.ts similarity index 91% rename from playwright-tests/tests/0019_EssentialTpaEnabledReplaceRecal.ts rename to playwright-tests/tests/0019_EssentialTpaEnabledReplaceAdas.ts index 1d02ffb1..81a6b06c 100644 --- a/playwright-tests/tests/0019_EssentialTpaEnabledReplaceRecal.ts +++ b/playwright-tests/tests/0019_EssentialTpaEnabledReplaceAdas.ts @@ -71,17 +71,17 @@ const essentialTpaEnabledData: Partial = { } const essentialClients = ClientData.getEssentialClients(); -const essentialTpaEnabledReplaceRecal_0019: TestCase[] = []; +const essentialTpaEnabledReplaceAdasTests: TestCase[] = []; for (const client of essentialClients) { const data = { ...essentialTpaEnabledData }; data.clientTag = client.clientTag; data.isAuthenticationRequired = client.clientFlags.isAuthenticationEnabled ?? false const tc = new TestCase({ - name: `0019 Essential TPA Enabled Client with Replace and ReCal vehicle: "${client.accountName}"`, + name: `0019 Essential TPA Enabled Client with Replace ADAS: "${client.accountName}"`, tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Recal', '@Essentials', '@0019'], testData: data }, undefined, '0019'); - essentialTpaEnabledReplaceRecal_0019.push(tc); + essentialTpaEnabledReplaceAdasTests.push(tc); } -export default essentialTpaEnabledReplaceRecal_0019; \ No newline at end of file +export default essentialTpaEnabledReplaceAdasTests; \ No newline at end of file diff --git a/playwright-tests/tests/advanced/0007a_RepairStateLanguage.ts b/playwright-tests/tests/advanced/0007a_RepairStateLanguage.ts index cfec1614..0ece73cd 100644 --- a/playwright-tests/tests/advanced/0007a_RepairStateLanguage.ts +++ b/playwright-tests/tests/advanced/0007a_RepairStateLanguage.ts @@ -33,7 +33,7 @@ const advancedScenario0007Data: Partial = { isDuplicateClaim: false, isPolicyFound: true, isNoComp: false, - hasStateLawPopup: true, + hasStateLawPopup: false, endorsements: undefined, vehiclePartQuestions: [ // { diff --git a/playwright-tests/tests/advanced/0015a_NoCompPartQuestions.ts b/playwright-tests/tests/advanced/0015a_NoCompPartQuestions.ts index 063059f9..e4aca6e3 100644 --- a/playwright-tests/tests/advanced/0015a_NoCompPartQuestions.ts +++ b/playwright-tests/tests/advanced/0015a_NoCompPartQuestions.ts @@ -46,7 +46,7 @@ const advancedScenario0015Data: Partial = { { partQuestionType: PartQuestionType.WindshieldColor, isOnPage: true, - optionToSelect: 'Heated glass, Heated glass Wiper Park' + optionToSelect: 'Heated glass, Hwp' }, { partQuestionType: PartQuestionType.DriverFrontColor,