From 5f22af740b65f6dc5d261affd1f6005a81f1a215 Mon Sep 17 00:00:00 2001 From: Siraj Shaik Date: Tue, 18 Feb 2025 16:10:11 -0500 Subject: [PATCH] Updates on report, order confirmation --- playwright-tests/impl/utils/ReportUtils.ts | 27 ++++++++++++++++++- .../pages/OrderConfirmationPage.ts | 8 +++--- playwright-tests/pages/WelcomePage.ts | 22 --------------- playwright-tests/playwright.config.ts | 4 +-- 4 files changed, 32 insertions(+), 29 deletions(-) diff --git a/playwright-tests/impl/utils/ReportUtils.ts b/playwright-tests/impl/utils/ReportUtils.ts index 078ebcaf..79aac63a 100644 --- a/playwright-tests/impl/utils/ReportUtils.ts +++ b/playwright-tests/impl/utils/ReportUtils.ts @@ -61,6 +61,21 @@ export function consolidateJsonReport() { } function generateSummaryTable(existingIssues: { [key: string]: any[] }): string { + let totalCritical = 0; + let totalSerious = 0; + let totalModerate = 0; + let totalMinor = 0; + let totalTotal = 0; + + Object.keys(existingIssues).forEach(pageName => { + const issues = existingIssues[pageName]; + totalCritical += issues.filter(issue => issue.impact === 'critical').length; + totalSerious += issues.filter(issue => issue.impact === 'serious').length; + totalModerate += issues.filter(issue => issue.impact === 'moderate').length; + totalMinor += issues.filter(issue => issue.impact === 'minor').length; + totalTotal += issues.length; + }); + return ` @@ -94,6 +109,16 @@ function generateSummaryTable(existingIssues: { [key: string]: any[] }): string `; }).join('')} + + + + + + + + + +
Total${totalCritical}${totalSerious}${totalModerate}${totalMinor}${totalTotal}
`; } @@ -334,4 +359,4 @@ function isDuplicateIssue(existingIssues: any[], newIssue: any): boolean { return existingIssues.some(issue => { return issue.id === newIssue.id && issue.pageName === newIssue.pageName; }); -} \ No newline at end of file +} diff --git a/playwright-tests/pages/OrderConfirmationPage.ts b/playwright-tests/pages/OrderConfirmationPage.ts index 0426a94e..6f0ed1dc 100644 --- a/playwright-tests/pages/OrderConfirmationPage.ts +++ b/playwright-tests/pages/OrderConfirmationPage.ts @@ -35,7 +35,7 @@ export class OrderConfirmationPage extends BasePage { async validateOrderConfirmationPage(testData: Partial) { // Destructure data we use const { vehicleDetails, customerDetails, servicePackage, isItac, - isNoComp, isPolicyFound, claimDetails, paymentDetails, isUseVehicleOnPolicy } = testData; + isNoComp, isPolicyFound, claimDetails, paymentDetails, isUseVehicleOnPolicy } = testData; await this.serviceText.waitFor({ state: "visible" }); await this.logOrderNumber(); @@ -45,7 +45,7 @@ export class OrderConfirmationPage extends BasePage { const emailTextValue = await this.emailText.textContent(); const servicePackageValue = await this.cartServicePackageText.textContent(); const amountDueValue = await this.amountDueText.textContent(); - const deductibleTextValue = (isItac || isNoComp)? null: await this.deductibleText.textContent(); + const deductibleTextValue = (isItac || isNoComp) ? null : await this.deductibleText.textContent(); const subtotalTextValue = await this.subtotalText.textContent(); const finalAmountDueValue = await this.finalAmountDue.textContent(); @@ -59,7 +59,7 @@ export class OrderConfirmationPage extends BasePage { // Service package validations await expect.soft(this.cartServicePackageText).toContainText(`${servicePackage}`) - if (servicePackage === ServicePackage.Premium || servicePackage === ServicePackage.Standard) { + if ((servicePackage === ServicePackage.Premium && testData.isReplace === true) || servicePackage === ServicePackage.Standard) { expect.soft(servicePackageValue).toContain('New wiper blades'); } if (servicePackage === ServicePackage.Premium) { @@ -76,7 +76,7 @@ export class OrderConfirmationPage extends BasePage { if (isPolicyFound && (isUseVehicleOnPolicy ?? true)) { // Extract numbers const amountDueAmt = Number.parseFloat(amountDueValue!.split('$')[1].replaceAll(',', '')); - const deductibleAmt = deductibleTextValue? Number.parseFloat(deductibleTextValue.split('$')[1].replaceAll(',', '')): 0; + const deductibleAmt = deductibleTextValue ? Number.parseFloat(deductibleTextValue.split('$')[1].replaceAll(',', '')) : 0; const subtotalAmt = Number.parseFloat(subtotalTextValue!.split('$')[1].replaceAll(',', '')); subtotalTextValue?.replaceAll(',', '') const finalAmountDueAmt = Number.parseFloat(finalAmountDueValue!.split('$')[1].replaceAll(',', '')); diff --git a/playwright-tests/pages/WelcomePage.ts b/playwright-tests/pages/WelcomePage.ts index 80dcbadb..1a38f9b4 100644 --- a/playwright-tests/pages/WelcomePage.ts +++ b/playwright-tests/pages/WelcomePage.ts @@ -79,27 +79,5 @@ export class WelcomePage extends BasePage { await this.city.fill(customerDetails.address.city); await this.state.selectOption(customerDetails.address.state); } - await this.logReferralNumber(); - } - - async logReferralNumber() { - let mainLocalStorage = JSON.parse(await this.page.evaluate('localStorage.getItem(\'main\')')); - let referralNumber = mainLocalStorage.order.referralNumber as number; - let referralSequenceNumber = mainLocalStorage.order.referralSequenceNumber as number; - if (referralNumber == null) { - for (let i = 1; i <= 20; i++) { - if (!referralNumber == null) break; - await this.page.waitForTimeout(500); - mainLocalStorage = JSON.parse(await this.page.evaluate('localStorage.getItem(\'main\')')); - referralNumber = mainLocalStorage.order.referralNumber as number; - referralSequenceNumber = mainLocalStorage.order.referralSequenceNumber as number; - } - } - - await test.step(`Referral Number:${referralNumber} Referral Sequence Number:${referralSequenceNumber}`, async () => { - console.log(`Referral Number:${referralNumber}`); - console.log(`Referral Sequence Number:${referralSequenceNumber}`); - }); - } } \ No newline at end of file diff --git a/playwright-tests/playwright.config.ts b/playwright-tests/playwright.config.ts index 59a42657..598cb9b5 100644 --- a/playwright-tests/playwright.config.ts +++ b/playwright-tests/playwright.config.ts @@ -39,8 +39,8 @@ const reportConfig: OrtoniReportConfig = { base64Image: true, }; -export const reportFilePath = path.resolve(__dirname, './test-results/accessibility-report.html'); -export const jsonReportFilePath = path.resolve(__dirname, './test-results/accessibility-report.json'); +export const reportFilePath = path.resolve(__dirname, './../test-results/accessibility-report.html'); +export const jsonReportFilePath = path.resolve(__dirname, './../test-results/accessibility-report.json'); export default defineConfig({ testDir: './tests',