Merge pull request #1268 from Safelite/feature/uboppa/INSR-8668
Feature/uboppa/insr 8668
This commit is contained in:
commit
383830b776
44 changed files with 238 additions and 47 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
export interface IAcordSoapConfig {
|
||||
orgName: string;
|
||||
companyProductCd: string;
|
||||
}
|
||||
|
||||
export interface IClientMockProfile {
|
||||
acordSoap?: IAcordSoapConfig;
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
Loading…
Reference in a new issue