Merge pull request #1268 from Safelite/feature/uboppa/INSR-8668

Feature/uboppa/insr 8668
This commit is contained in:
Udayboppasafelite 2026-06-25 14:01:55 -04:00 committed by GitHub
commit 383830b776
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 238 additions and 47 deletions

View file

@ -101,8 +101,19 @@ const essentialClients: IClient[] = [
{
clientTag: '6D13AEF6-CE16-400F-9A29-A1AED5C47D48',
accountName: 'Liberty Mutual',
clientFlags: { isTpaEnabled: true }
clientFlags: { isTpaEnabled: true, isWelcomeDamageLocationRequired: true },
bgColor: "rgb(255, 209, 0)"
},
{
clientTag: 'A5F7D473-29C4-4E2C-AD08-A3AB13FE0314',
accountName: 'Safeco Insurance',
accountNumber: '408810',
clientFlags: { isTpaEnabled: true, isWelcomeDamageLocationRequired: true},
bgColor: "rgb(255, 209, 0)",
},
{
clientTag: 'F680CCE4-6D88-4845-9FA4-746CF54B4AC',
accountName: 'M Plate',
@ -173,11 +184,6 @@ const essentialClients: IClient[] = [
accountName: 'QBE',
clientFlags: {}
},
{
clientTag: 'A5F7D473-29C4-4E2C-AD08-A3AB13FE0314',
accountName: 'Safeco Insurance',
clientFlags: { isTpaEnabled: true }
},
{
clientTag: '32978a45-dd2e-4fc6-b2ca-7178efb40373',
accountName: 'Secura',
@ -198,14 +204,33 @@ const essentialClients: IClient[] = [
accountName: 'Wayne Insurance',
clientFlags: {}
}
]
const advancedClients: IClient[] = [
{
clientTag: '1216EA5F-64D1-462A-A03F-34C0A652430E',
accountName: 'Liberty Mutual',
clientFlags: {}
}
accountNumber: '550036',
clientFlags: {isWelcomeDamageLocationRequired: true},
bgColor: "rgb(255, 209, 0)",
mockProfile: {
acordSoap: { orgName: 'Liberty Mutual', companyProductCd: 'liberty' },
},
},
{
clientTag: 'A5F7D473-29C4-4E2C-AD08-A3AB13FE0314',
accountName: 'Safeco Insurance',
accountNumber: '408810',
clientFlags: { isTpaEnabled: true, isWelcomeDamageLocationRequired: true },
bgColor: "rgb(255, 209, 0)",
mockProfile: {
acordSoap: { orgName: 'Safeco', companyProductCd: 'safeco' },
},
},
]
const defaultCreditCardDetails: IPaymentDetails = {
@ -308,4 +333,40 @@ export default class ClientData {
static getDefaultPaypalDetails() {
return defaultPaypalDetails;
}
static getClientByTag(clientTag: string) {
return this.resolveClientForTest(clientTag);
}
static getClientByAccountNumber(accountNumber: string) {
const advancedMatch = advancedClients.find(client => client.accountNumber === accountNumber);
if (advancedMatch) {
return advancedMatch;
}
return essentialClients.find(client => client.accountNumber === accountNumber);
}
static resolveClientForTest(clientTag: string, accountNumber?: string): IClient | undefined {
const normalizedTag = clientTag.toLowerCase();
if (accountNumber) {
const clientByAccount = this.getClientByAccountNumber(accountNumber);
if (clientByAccount?.clientTag.toLowerCase() === normalizedTag) {
return clientByAccount;
}
}
const essentialMatch = essentialClients.find(
client => client.clientTag.toLowerCase() === normalizedTag
);
const advancedMatch = advancedClients.find(
client => client.clientTag.toLowerCase() === normalizedTag
);
if (essentialMatch && advancedMatch) {
return essentialMatch;
}
return advancedMatch ?? essentialMatch;
}
}

View file

@ -1,5 +1,6 @@
import { IPostSaveFakeResponseRequestBody } from "@business-logic/types/CcisApi";
import { ICustomerDetails } from "@business-logic/types/CustomerDetails";
import ClientData from "@business-logic/data/ClientData";
const policySoapByScenario: { [x: string]: string } = {
'0001a': '<soapenv:Envelope xmlns:soapenv= \"http://schemas.xmlsoap.org/soap/envelope/\"> <soapenv:Body> <se:policySearchResponse xmlns:_xml= \"http://www.ACORD.org/standards/PC_Surety/ACORD1/xml/\" xmlns:se= \"http://pm.lmig.com/cl/PolicyServicesMediationModule/iAcordPolicySearch\"> <_xml:ACORD> <_xml:SignonRs> <_xml:CustId> <_xml:SPName>Safelite</_xml:SPName> <_xml:CustPermId>00005</_xml:CustPermId> </_xml:CustId> <_xml:ClientDt>2023-10-19T20:26:10Z</_xml:ClientDt> <_xml:CustLangPref>EN</_xml:CustLangPref> <_xml:ClientApp> <_xml:Org>Liberty Mutual</_xml:Org> <_xml:Name>PM CNG</_xml:Name> <_xml:Version>1.0</_xml:Version> </_xml:ClientApp> <_xml:ServerDt>2023-10-19T20:26:10Z</_xml:ServerDt> <_xml:Language>EN</_xml:Language> </_xml:SignonRs> <_xml:InsuranceSvcRs> <_xml:RqUID>d30c40e1-3a1e-4351-85b9-40abdc061fad</_xml:RqUID> <_xml:PolicyInqRs> <_xml:RqUID>d30c40e1-3a1e-4351-85b9-40abdc061fad</_xml:RqUID> <_xml:TransactionResponseDt>2023-10-19T20:26:10Z</_xml:TransactionResponseDt> <_xml:MsgStatus> <_xml:MsgStatusCd>Success</_xml:MsgStatusCd> </_xml:MsgStatus> <_xml:AsOfDt>2023-10-01</_xml:AsOfDt> <_xml:Requestor id= \"RequestorId_1\" /> <_xml:PartyInqInfo> <_xml:InsuredOrPrincipal id= \"InsuredOrPrincipalId_1\" /> </_xml:PartyInqInfo> <_xml:PolInfo> <_xml:PersAutoPolicy id= \"PersAutoPolicyID_1\"> <_xml:InsuredOrPrincipal> <_xml:GeneralPartyInfo> <_xml:NameInfo> <_xml:PersonName> <_xml:Surname>${lastName}</_xml:Surname> <_xml:GivenName>${firstName}</_xml:GivenName> </_xml:PersonName> </_xml:NameInfo> <_xml:Addr> <_xml:Addr1>${streetAddress}</_xml:Addr1> <_xml:City>${city}</_xml:City> <_xml:StateProvCd>${state}</_xml:StateProvCd> <_xml:PostalCode>${postalCode}</_xml:PostalCode> <_xml:Country>US</_xml:Country> </_xml:Addr> <_xml:Communications> <_xml:PhoneInfo> <_xml:PhoneTypeCd>Home</_xml:PhoneTypeCd> <_xml:PhoneNumber>+${phoneNumber}</_xml:PhoneNumber> </_xml:PhoneInfo> </_xml:Communications> </_xml:GeneralPartyInfo> <_xml:InsuredOrPrincipalInfo> <_xml:InsuredOrPrincipalRoleCd>primary</_xml:InsuredOrPrincipalRoleCd> <_xml:PersonInfo> <_xml:GenderCd>F</_xml:GenderCd> </_xml:PersonInfo> </_xml:InsuredOrPrincipalInfo> </_xml:InsuredOrPrincipal> <_xml:PersPolicy> <_xml:PolicyNumber>${policyNumber}</_xml:PolicyNumber> <_xml:PolicyVersion>GRS</_xml:PolicyVersion> <_xml:CompanyProductCd>liberty</_xml:CompanyProductCd> <_xml:LOBCd>AUTOP</_xml:LOBCd> <_xml:ControllingStateProvCd>OR</_xml:ControllingStateProvCd> <_xml:ContractTerm> <_xml:EffectiveDt>2023-03-21</_xml:EffectiveDt> <_xml:ExpirationDt>2099-03-21</_xml:ExpirationDt> </_xml:ContractTerm> <_xml:GroupId>000</_xml:GroupId> <_xml:MiscParty> <_xml:ItemIdInfo> <_xml:InsurerId>3102863830064</_xml:InsurerId> </_xml:ItemIdInfo> </_xml:MiscParty> </_xml:PersPolicy> <_xml:Location> <_xml:ItemIdInfo id= \"ItemIdInfoId_1\" /> <_xml:Addr> <_xml:Addr1>${streetAddress}</_xml:Addr1> <_xml:City>${city}</_xml:City> <_xml:StateProvCd>${state}</_xml:StateProvCd> <_xml:PostalCode>${postalCode}</_xml:PostalCode> <_xml:Country>US</_xml:Country> </_xml:Addr> </_xml:Location> <_xml:PersAutoLineBusiness> <_xml:LOBCd>AUTOP</_xml:LOBCd> <_xml:PersVeh> <_xml:ItemIdInfo> <_xml:InsurerId>1</_xml:InsurerId> </_xml:ItemIdInfo> <_xml:Manufacturer>BMW</_xml:Manufacturer> <_xml:Model>740</_xml:Model> <_xml:ModelYear>2020</_xml:ModelYear> <_xml:Registration> <_xml:RegistrationId>UNKNOWN</_xml:RegistrationId> <_xml:StateProvCd>OR</_xml:StateProvCd> </_xml:Registration> <_xml:VehIdentificationNumber>WBA7T2C01LGL17632</_xml:VehIdentificationNumber> <_xml:VehRateGroupInfo> <_xml:RateGroup>000</_xml:RateGroup> <_xml:CoverageCd>service_level_ind</_xml:CoverageCd> </_xml:VehRateGroupInfo> <_xml:VehRateGroupInfo> <_xml:RateGroup>000</_xml:RateGroup> <_xml:CoverageCd>parking_guard</_xml:CoverageCd> </_xml:VehRateGroupInfo> <_xml:Coverage> <_xml:CoverageCd>GLSS</_xml:CoverageCd> <_xml:CoverageDesc>ACV</_xml:CoverageDesc> <_xml:Deductible> <_xml:FormatCurrencyAmt> <_xml:Amt>250.00</_xml:Amt> </_xml:FormatCurrencyAmt> </_xml:Deductible> <_xml:Option> <_xml:OptionCd>V</_xml:OptionCd> <_xml:OptionValue>1</_xml:OptionValue> <_xml:OptionValueDesc>COVERAGE_LIMIT_IND</_xml:OptionValueDesc> </_xml:Option> </_xml:Coverage> </_xml:PersVeh> </_xml:PersAutoLineBusiness> <_xml:RemarkText id= \"endorsementId_1\" IdRef= \"PersAutoPolicyID_1\">000</_xml:RemarkText> <_xml:PolicySummaryInfo> <_xml:PolicyStatusCd>ACTIVE</_xml:PolicyStatusCd> </_xml:PolicySummaryInfo> </_xml:PersAutoPolicy> </_xml:PolInfo> </_xml:PolicyInqRs> </_xml:InsuranceSvcRs> </_xml:ACORD> </se:policySearchResponse> </soapenv:Body> </soapenv:Envelope>',
@ -39,7 +40,8 @@ const claimRegistrationValue = "{\"claimNumber\":\"058913992\",\"reportedDate\":
export default class MockPolicyData {
static interpolatePolicyDetails(policySoap: string, customerDetails: ICustomerDetails, policyNumber: string) {
static interpolatePolicyDetails(policySoap: string, customerDetails: ICustomerDetails, policyNumber: string)
{
return policySoap.replaceAll('${firstName}', customerDetails.firstName)
.replaceAll('${lastName}', customerDetails.lastName)
.replaceAll('${streetAddress}', customerDetails.address.street)
@ -50,9 +52,17 @@ export default class MockPolicyData {
.replaceAll('${phoneNumber}', customerDetails.phoneNumber);
}
static generateCreateMockPolicyRequest(policyNumber: string, soapValue: string) {
static applyClientToPolicySoap(policySoap: string, accountNumber: string) {
const client = ClientData.getClientByAccountNumber(accountNumber);
const acordSoap = client?.mockProfile?.acordSoap ?? { orgName: '', companyProductCd: '' };
return policySoap
.replaceAll('<_xml:Org>Liberty Mutual</_xml:Org>', `<_xml:Org>${acordSoap.orgName}</_xml:Org>`)
.replaceAll('<_xml:CompanyProductCd>liberty</_xml:CompanyProductCd>', `<_xml:CompanyProductCd>${acordSoap.companyProductCd}</_xml:CompanyProductCd>`);
}
static generateCreateMockPolicyRequest(accountNumber: string, policyNumber: string, soapValue: string) {
const request: IPostSaveFakeResponseRequestBody = {
accountNumber: '550036', // TODO: Update when we have more than just liberty mutual
accountNumber: accountNumber,
responseType: 'Policy',
key: policyNumber,
value: soapValue
@ -60,12 +70,12 @@ export default class MockPolicyData {
return request;
}
static generateCreateClaimRegistrationRequest(policyNumber: string) {
static generateCreateClaimRegistrationRequest(accountNumber: string, policyNumber: string, claimValue?: string) {
const request: IPostSaveFakeResponseRequestBody = {
accountNumber: '550036', // TODO: Update when we have more than just liberty mutual
accountNumber: accountNumber,
responseType: 'ClaimRegistration',
key: policyNumber,
value: claimRegistrationValue
value: claimValue ?? claimRegistrationValue
}
return request;

View file

@ -1,10 +1,16 @@
import { IClientMockProfile } from "./ClientMockProfile";
export interface IClient {
clientTag: string,
accountName: string
clientFlags: Partial<IClientFlags>
accountName: string,
accountNumber?: string,
clientFlags: Partial<IClientFlags>,
bgColor?: string,
mockProfile?: IClientMockProfile
}
export interface IClientFlags {
isTpaEnabled: boolean;
isAuthenticationEnabled: boolean;
isWelcomeDamageLocationRequired?: boolean;
}

View file

@ -0,0 +1,8 @@
export interface IAcordSoapConfig {
orgName: string;
companyProductCd: string;
}
export interface IClientMockProfile {
acordSoap?: IAcordSoapConfig;
}

View file

@ -5,6 +5,7 @@ import IBailoutFlags from "./IBailoutFlags"
export interface ITestData {
isMockTesting: boolean,
clientTag: string,
accountNumber: string,
isDuplicateClaim: boolean,
isPolicyFound: boolean, // Effective difference between advanced and essential
isUnverifiedPolicyAfterVehicleLookup: boolean, // Changing license plate can cause flow to change to unverified from verified

View file

@ -162,15 +162,18 @@ export default class TestCase extends DisposableBase implements ITestCase {
public async setup(): Promise<void> {
if (this.testData.policySoap && this.testData.claimDetails) {
const apiUtil = new CcisApiUtil();
const accountNumber = this.testData.accountNumber ?? '';
const policySoap = MockPolicyData.applyClientToPolicySoap(this.testData.policySoap, accountNumber);
// Create Policy
const req = MockPolicyData.generateCreateMockPolicyRequest(accountNumber,this.testData.claimDetails.policyNumber, policySoap);
// Create Policy
const req = MockPolicyData.generateCreateMockPolicyRequest(this.testData.claimDetails.policyNumber, this.testData.policySoap);
console.log('Policy Number: ' + this.testData.claimDetails.policyNumber + ' Damage Date: ' + this.testData.claimDetails.damageDate + ' Postal code: ' + this.testData.customerDetails?.address.postalCode!);
const res = await apiUtil.createFakeResponse(req);
console.log("Fake Policy creation status" + res.status); // For debug use console.dir(res);
// Create Claim Registration
const claimRegReq = MockPolicyData.generateCreateClaimRegistrationRequest(this.testData.claimDetails.policyNumber);
const claimRegReq = MockPolicyData.generateCreateClaimRegistrationRequest(accountNumber,this.testData.claimDetails.policyNumber);
const claimRegRes = await apiUtil.createFakeResponse(claimRegReq);
console.log("Fake claim registration creation status: " + claimRegRes.status); //For debug use console.dir(claimRegRes);
}
@ -213,25 +216,36 @@ export default class TestCase extends DisposableBase implements ITestCase {
};
}
protected async dispose(): Promise<void> {
if (this.testData.policySoap && this.testData.claimDetails) {
const apiUtil = new CcisApiUtil();
protected async dispose(): Promise<void> {
if (!this.testData.claimDetails) {
return;
}
// Delete policy
const accountNumber = this.testData.accountNumber ?? '';
const apiUtil = new CcisApiUtil();
const policyNumber = this.testData.claimDetails.policyNumber;
try {
const policyDeleteRes = await apiUtil.deleteFakeResponse({
accountNumber: '550036', // TODO: Change when we have more clients
key: this.testData.claimDetails.policyNumber,
accountNumber: accountNumber,
key: policyNumber,
responseType: 'Policy'
});
console.log("Delete 'Fake policy' status: " + policyDeleteRes.status); //For debug use console.dir(policyDeleteRes);
console.log("Delete 'Fake policy' status: " + policyDeleteRes.status);
} catch (error) {
console.warn("Delete 'Fake policy' skipped or failed (mock may not exist): " + error);
}
// Delete Claim Registration
try {
const crDeleteRes = await apiUtil.deleteFakeResponse({
accountNumber: '550036', // TODO: Change when we have more clients
key: this.testData.claimDetails.policyNumber,
accountNumber: accountNumber,
key: policyNumber,
responseType: 'ClaimRegistration'
});
console.log("Delete 'Fake Claim Registration policy' status: " + crDeleteRes.status); //For debug use console.dir(crDeleteRes);
console.log("Delete 'Fake Claim Registration policy' status: " + crDeleteRes.status);
} catch (error) {
console.warn("Delete 'Fake Claim Registration' skipped or failed (mock may not exist): " + error);
}
}
}

View file

@ -1,6 +1,7 @@
import { expect, type Locator, type Page } from '@playwright/test';
import { BasePage } from './BasePage';
import { ICustomerDetails } from '@business-logic/types/CustomerDetails';
import { IAddress } from '@business-logic/types/IAddress';
export class ContactDetailsPage extends BasePage {
readonly page: Page;
@ -59,6 +60,12 @@ export class ContactDetailsPage extends BasePage {
await this.cityTextBox.fill(alternateMobileCity);
}
async fillMobileServiceAddress(serviceAddress: IAddress) {
await this.streetAddressTextBox.fill(serviceAddress.street);
await this.cityTextBox.fill(serviceAddress.city);
await expect.soft(this.zipCodeTextBox).toHaveValue(serviceAddress.postalCode);
}
async fillNotes(notes?: string) {
if (notes) {
await this.notesTextBox.fill(notes);

View file

@ -4,6 +4,7 @@ import { IClaimDetails, ICustomerDetails } from '@business-logic/types/CustomerD
import { getClientAuthByClientTag, getClientSignature } from '@impl/api/AdminServiceApiUtil';
import { ICertificateInfo, IClientSignatureRequest } from '@business-logic/types/Authentication';
import { buildToken, getTimestamp } from '@impl/utils/TokenUtils';
import ClientData from "@business-logic/data/ClientData";
export class WelcomePage extends BasePage {
readonly page: Page;
@ -17,6 +18,8 @@ export class WelcomePage extends BasePage {
readonly state: Locator;
readonly cookieCloseButton: Locator;
readonly GetStartedButton: Locator;
readonly applicationPageHeader: Locator;
url = process.env['BASE_URL']! + '/?issPage=welcome-page';
issPageValue = 'welcome-page';
@ -33,14 +36,24 @@ export class WelcomePage extends BasePage {
this.state = page.locator('select[name="\\38 fdf9dc2e13e430eb57529499dceb3eb"]');
this.cookieCloseButton = page.getByRole('button', { name: 'Close' });
this.GetStartedButton = page.getByRole('button', { name: 'Get Started' });
this.applicationPageHeader = page.locator('.site-header-container');
}
async goto(clientTag: string) {
await this.page.goto(process.env['BASE_URL']! + `/?issPage=entry-page&ClientTag=${clientTag}`);
await this.waitForURL(this.url);
await this.cookieCloseButton.click();
await this.dismissCookiePopupIfPresent();
}
async dismissCookiePopupIfPresent() {
try {
await this.cookieCloseButton.waitFor({ state: 'visible', timeout: 3000 });
await this.cookieCloseButton.click();
} catch {
}
}
async gotoWithAuthentication(clientTag: string) {
const clientAuth = await getClientAuthByClientTag(clientTag);
const certificate = clientAuth.certificateInfo[0] as ICertificateInfo;
@ -61,11 +74,35 @@ export class WelcomePage extends BasePage {
await this.cookieCloseButton.click();
}
async hasCityInfo() {
async hasCityInfo() {
await expect.soft(this.damageCause).toBeVisible();
return this.city.isVisible();
}
async hasApplicationPageHeader(currentClientTag: string, accountNumber?: string) {
const client = ClientData.resolveClientForTest(currentClientTag, accountNumber);
if (client?.bgColor) {
const actualBgColor = await this.applicationPageHeader.evaluate((el) => {
return window.getComputedStyle(el).getPropertyValue('background-color');
});
const normalize = (color: string) => color.replace(/\s+/g, '');
expect(normalize(actualBgColor)).toBe(normalize(client.bgColor));
}
}
async validateDamageLocationFieldsIfRequired(clientTag: string, accountNumber?: string) {
const client = ClientData.resolveClientForTest(clientTag, accountNumber);
if (!client?.clientFlags.isWelcomeDamageLocationRequired) {
return;
}
await expect(this.page.getByText(/which state did the damage occur/i)).toBeVisible();
await expect(this.state).toBeVisible();
await expect(this.page.getByText(/which city did the damage occur/i)).toBeVisible();
await expect(this.city).toBeVisible();
}
async populatePage(customerDetails: ICustomerDetails, claimDetails: IClaimDetails, isFillCityInfo: boolean) {
await this.policyNumber.fill(claimDetails.policyNumber);
await this.phoneNumber.fill(customerDetails.phoneNumber);

View file

@ -411,6 +411,20 @@ async function runWorkflow(page: Page, testCase: TestCase) {
const hasEndorsements = endorsements && endorsements.length > 0;
await test.step('WelcomePage >> Check Page Header Background Color', async () => {
await welcomePage.hasApplicationPageHeader(
testCase.testData.clientTag!,
testCase.testData.accountNumber
);
});
await test.step('WelcomePage >> Validate damage location fields', async () => {
await welcomePage.validateDamageLocationFieldsIfRequired(
testCase.testData.clientTag!,
testCase.testData.accountNumber
);
});
await test.step('WelcomePage >> Populate Customer Details', async () => {
await welcomePage.populatePage(customerDetails!, claimDetails!, await welcomePage.hasCityInfo());
await welcomePage.GetStartedButton.click();
@ -857,10 +871,13 @@ async function runWorkflow(page: Page, testCase: TestCase) {
await test.step('ContactDetailsPage >> Validate contact details', async () => {
await contactDetailsPage.validateURL(contactDetailsPage.issPageValue);
await contactDetailsPage.fillContactDetails(customerDetails!);
if (appointmentDetails?.alternateMobileCity) {
await contactDetailsPage.fillAlternateMobileStreetAndCity(appointmentDetails?.alternateMobileStreetAddress!, appointmentDetails?.alternateMobileCity!);
if (appointmentDetails?.serviceAddress) {
await contactDetailsPage.fillMobileServiceAddress(appointmentDetails.serviceAddress);
} else {
await contactDetailsPage.fillContactDetails(customerDetails!);
if (appointmentDetails?.alternateMobileCity) {
await contactDetailsPage.fillAlternateMobileStreetAndCity(appointmentDetails?.alternateMobileStreetAddress!, appointmentDetails?.alternateMobileCity!);
}
}
await contactDetailsPage.nextPage();

View file

@ -21,11 +21,10 @@ const essentialReplaceStaticAdasData: Partial<ITestData> = {
phoneNumber: faker.helpers.fromRegExp(/[2-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]/),
notes: 'Automated Test',
address: {
street: "123 Test Road",
city: 'Columbus',
street: "123 Test St",
city: 'Galena',
state: 'OHIO',
postalCode: '43085',
country: 'United States'
postalCode: '43021',
}
},
claimDetails: {

View file

@ -51,12 +51,12 @@ const essentialUnqiqueGlassData: Partial<ITestData> = {
{
partQuestionType: PartQuestionType.WindshieldColor,
isOnPage: true,
optionToSelect: '3rd Visor Frit'
optionToSelect: 'Third Visor Frit'
},
{
partQuestionType: PartQuestionType.DriverSideColor,
isOnPage: true,
optionToSelect: 'Solar~left~rear~movable~exc. 118" Wb~aftermarket'
optionToSelect: 'Solar, Driver side, Rear, Movable, Exc. 118" Wb, Aftermarket'
},
],
appointmentDetails: {

View file

@ -23,10 +23,10 @@ const essentialRepairMobileData: Partial<ITestData> = {
phoneNumber: faker.helpers.fromRegExp(/[2-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]/),
notes: 'Automated Test',
address: {
street: '123 Test Road',
street: '7400 Safelite Way',
city: 'Columbus',
state: 'OHIO',
postalCode: '43016',
postalCode: '43235',
country: 'United States'
}
},

View file

@ -31,9 +31,9 @@ const essentialServiceableBigTruckData: Partial<ITestData> = {
notes: 'Automated Test',
address: {
street: '9799 Heartland Court',
city: 'Dublin',
city: 'Columbus',
state: 'OHIO',
postalCode: '43016',
postalCode: '43217',
country: 'United States'
}
},

View file

@ -68,6 +68,7 @@ const advancedScenario0001TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0001Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0001a_Advanced_Replace_Deductible_Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-6847'],

View file

@ -117,6 +117,7 @@ const advancedScenario0002TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0002Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0002a_Advanced_Replace_Deductible_Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -40,7 +40,7 @@ const advancedScenario0003Data: Partial<ITestData> = {
{
partQuestionType: PartQuestionType.WindshieldColor,
isOnPage: true,
optionToSelect: 'Green Tint'
optionToSelect: '05-10 Chrysler 300c'
},
{
partQuestionType: PartQuestionType.PassengerRearColor,
@ -85,6 +85,7 @@ const advancedScenario0003TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0003Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0003a Advanced Replace Deductible Mobile Afterpay Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -71,6 +71,7 @@ const advancedScenario0004aTestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0004aData };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0004a Advanced Replace Deductible Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -80,6 +80,7 @@ const advancedScenario0005TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0005Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0005a Advanced Replace Capability Questions Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -84,6 +84,7 @@ const advancedScenario0006TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0006Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0006a Advanced Repair No Deductible Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -84,6 +84,7 @@ const advancedScenario0007TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0007Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0007a Advanced Repair SC State Language Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -70,6 +70,7 @@ const advancedScenario0008TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0008Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0008a Advanced Repair TPA Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -90,6 +90,7 @@ const advancedScenario0009TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0009Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0009a Advanced Replace No Deductible FL Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -91,6 +91,7 @@ const advancedScenario0010TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0010Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0010a Advanced Replace No Deductible FL Rear Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -104,6 +104,7 @@ const advancedScenario0011TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0011Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0011a Advanced ITAC No Adas Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -79,6 +79,7 @@ const advancedScenario0012TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0012Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0012a Advanced ITAC Drop-Off Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -81,6 +81,7 @@ const advancedScenario0013TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0013Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0013a Advanced $0 Deductible with Vaps Mobile Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -79,6 +79,7 @@ const advancedScenario0014TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0014Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0014a Advanced Replace NoComp Adas Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -92,6 +92,7 @@ const advancedScenario0015TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0015Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0015a Advanced Replace NoComp Parts Questions Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -114,6 +114,7 @@ const advancedScenario0016TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0016Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0016a Advanced Replace NoComp All Glass Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@Defect-INSR-2138'],

View file

@ -85,6 +85,7 @@ const advancedScenario0017TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0017Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0017a Advanced Repair NoComp Premium Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -82,6 +82,7 @@ const advancedScenario0018TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0018Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0018a Advanced Repair No Deductible Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -84,6 +84,7 @@ const advancedScenario0019TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0019Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0019a Advanced Repair No Deductible Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -83,6 +83,7 @@ const advancedScenario0020TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = {...advancedScenario0020Data};
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0020a Advanced Repair Change Location Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced','@Defect-INSR-2149'],

View file

@ -77,6 +77,7 @@ const advancedScenario0021TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0021Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0021a Advanced client Vehicle By License Plate: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-2057'],

View file

@ -74,6 +74,7 @@ const advancedScenario0022TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0022Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0022a Advanced Client Vehicle By Vin: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-2057'],

View file

@ -74,6 +74,7 @@ const advancedScenario0023TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0023Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0023a Advanced client Unlisted Vehicle: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-2057'],

View file

@ -81,6 +81,7 @@ const advancedScenario0024TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0024Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0024a Advanced Client Address Vehicle Lookup: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-2057'],

View file

@ -74,6 +74,7 @@ const advancedScenario0025TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0025Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0025a Advanced client Unlisted Vehicle Bailout: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-2057'],

View file

@ -76,6 +76,7 @@ const advancedScenario0026aTestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0026aData };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0026a Advanced Replace Deductible Client: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-2057'],

View file

@ -83,6 +83,7 @@ const advancedScenario0028aTestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0028aData };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0028a Advanced ITAC Cancel My Claim: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-2057'],

View file

@ -77,6 +77,7 @@ const advancedScenario0029TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0029Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0029a Advanced client Unlisted Vehicle: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-2057'],

View file

@ -78,6 +78,7 @@ const advancedScenario0030aTestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0030aData };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0030a Advanced API Error Bailout: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced', '@INSR-2057'],

View file

@ -75,6 +75,7 @@ const advancedScenario0031TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0031Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0031a Advanced Replace Serviceable Big Truck: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],

View file

@ -73,6 +73,7 @@ const advancedScenario0032TestCases: TestCase[] = [];
for (const client of advancedClients) {
const data = { ...advancedScenario0032Data };
data.clientTag = client.clientTag;
data.accountNumber = client.accountNumber;
const tc = new TestCase({
name: `0032a Advanced Decline Non-Serviceable Big Truck: "${client.accountName}"`,
tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],