diff --git a/playwright-tests/business-logic/data/ClientData.ts b/playwright-tests/business-logic/data/ClientData.ts
index e2854959..73c837ab 100644
--- a/playwright-tests/business-logic/data/ClientData.ts
+++ b/playwright-tests/business-logic/data/ClientData.ts
@@ -220,7 +220,10 @@ const advancedClients: IClient[] = [
accountName: 'Liberty Mutual',
accountNumber: '550036',
clientFlags: {isWelcomeDamageLocationRequired: true},
- bgColor: "rgb(255, 209, 0)"
+ bgColor: "rgb(255, 209, 0)",
+ mockProfile: {
+ acordSoap: { orgName: 'Liberty Mutual', companyProductCd: 'liberty' },
+ },
},
{
@@ -228,7 +231,10 @@ const advancedClients: IClient[] = [
accountName: 'Safeco Insurance',
accountNumber: '408810',
clientFlags: { isTpaEnabled: true, isWelcomeDamageLocationRequired: true },
- bgColor: "rgb(255, 209, 0)"
+ bgColor: "rgb(255, 209, 0)",
+ mockProfile: {
+ acordSoap: { orgName: 'Safeco', companyProductCd: 'safeco' },
+ },
},
diff --git a/playwright-tests/business-logic/data/MockPolicyData.ts b/playwright-tests/business-logic/data/MockPolicyData.ts
index 15ae5dd0..7f6192c4 100644
--- a/playwright-tests/business-logic/data/MockPolicyData.ts
+++ b/playwright-tests/business-logic/data/MockPolicyData.ts
@@ -1,5 +1,6 @@
import { IPostSaveFakeResponseRequestBody } from "@business-logic/types/CcisApi";
import { ICustomerDetails } from "@business-logic/types/CustomerDetails";
+import ClientData from "./ClientData";
const policySoapByScenario: { [x: string]: string } = {
'0001a': ' <_xml:ACORD> <_xml:SignonRs> <_xml:CustId> <_xml:SPName>Safelite <_xml:CustPermId>00005 <_xml:ClientDt>2023-10-19T20:26:10Z <_xml:CustLangPref>EN <_xml:ClientApp> <_xml:Org>Liberty Mutual <_xml:Name>PM CNG <_xml:Version>1.0 <_xml:ServerDt>2023-10-19T20:26:10Z <_xml:Language>EN <_xml:InsuranceSvcRs> <_xml:RqUID>d30c40e1-3a1e-4351-85b9-40abdc061fad <_xml:PolicyInqRs> <_xml:RqUID>d30c40e1-3a1e-4351-85b9-40abdc061fad <_xml:TransactionResponseDt>2023-10-19T20:26:10Z <_xml:MsgStatus> <_xml:MsgStatusCd>Success <_xml:AsOfDt>2023-10-01 <_xml:Requestor id= \"RequestorId_1\" /> <_xml:PartyInqInfo> <_xml:InsuredOrPrincipal id= \"InsuredOrPrincipalId_1\" /> <_xml:PolInfo> <_xml:PersAutoPolicy id= \"PersAutoPolicyID_1\"> <_xml:InsuredOrPrincipal> <_xml:GeneralPartyInfo> <_xml:NameInfo> <_xml:PersonName> <_xml:Surname>${lastName} <_xml:GivenName>${firstName} <_xml:Addr> <_xml:Addr1>${streetAddress} <_xml:City>${city} <_xml:StateProvCd>${state} <_xml:PostalCode>${postalCode} <_xml:Country>US <_xml:Communications> <_xml:PhoneInfo> <_xml:PhoneTypeCd>Home <_xml:PhoneNumber>+${phoneNumber} <_xml:InsuredOrPrincipalInfo> <_xml:InsuredOrPrincipalRoleCd>primary <_xml:PersonInfo> <_xml:GenderCd>F <_xml:PersPolicy> <_xml:PolicyNumber>${policyNumber} <_xml:PolicyVersion>GRS <_xml:CompanyProductCd>liberty <_xml:LOBCd>AUTOP <_xml:ControllingStateProvCd>OR <_xml:ContractTerm> <_xml:EffectiveDt>2023-03-21 <_xml:ExpirationDt>2099-03-21 <_xml:GroupId>000 <_xml:MiscParty> <_xml:ItemIdInfo> <_xml:InsurerId>3102863830064 <_xml:Location> <_xml:ItemIdInfo id= \"ItemIdInfoId_1\" /> <_xml:Addr> <_xml:Addr1>${streetAddress} <_xml:City>${city} <_xml:StateProvCd>${state} <_xml:PostalCode>${postalCode} <_xml:Country>US <_xml:PersAutoLineBusiness> <_xml:LOBCd>AUTOP <_xml:PersVeh> <_xml:ItemIdInfo> <_xml:InsurerId>1 <_xml:Manufacturer>BMW <_xml:Model>740 <_xml:ModelYear>2020 <_xml:Registration> <_xml:RegistrationId>UNKNOWN <_xml:StateProvCd>OR <_xml:VehIdentificationNumber>WBA7T2C01LGL17632 <_xml:VehRateGroupInfo> <_xml:RateGroup>000 <_xml:CoverageCd>service_level_ind <_xml:VehRateGroupInfo> <_xml:RateGroup>000 <_xml:CoverageCd>parking_guard <_xml:Coverage> <_xml:CoverageCd>GLSS <_xml:CoverageDesc>ACV <_xml:Deductible> <_xml:FormatCurrencyAmt> <_xml:Amt>250.00 <_xml:Option> <_xml:OptionCd>V <_xml:OptionValue>1 <_xml:OptionValueDesc>COVERAGE_LIMIT_IND <_xml:RemarkText id= \"endorsementId_1\" IdRef= \"PersAutoPolicyID_1\">000 <_xml:PolicySummaryInfo> <_xml:PolicyStatusCd>ACTIVE ',
@@ -50,22 +51,18 @@ export default class MockPolicyData {
.replaceAll('${policyNumber}', policyNumber)
.replaceAll('${phoneNumber}', customerDetails.phoneNumber);
}
-
+
static applyClientToPolicySoap(policySoap: string, accountNumber: string) {
- let orgName = 'Liberty Mutual';
- let companyProductCd = 'liberty';
- if (accountNumber === '408810') { //this is safeco account number
- orgName = 'Safeco';
- companyProductCd = 'safeco';
- }
+ const client = ClientData.getClientByAccountNumber(accountNumber);
+ const acordSoap = client?.mockProfile?.acordSoap ?? { orgName: '', companyProductCd: '' };
return policySoap
- .replaceAll('<_xml:Org>Liberty Mutual', `<_xml:Org>${orgName}`)
- .replaceAll('<_xml:CompanyProductCd>liberty', `<_xml:CompanyProductCd>${companyProductCd}`);
+ .replaceAll('<_xml:Org>Liberty Mutual', `<_xml:Org>${acordSoap.orgName}`)
+ .replaceAll('<_xml:CompanyProductCd>liberty', `<_xml:CompanyProductCd>${acordSoap.companyProductCd}`);
}
- static generateCreateMockPolicyRequest(policyNumber: string, soapValue: string) {
+ 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
@@ -73,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;
diff --git a/playwright-tests/business-logic/types/Client.ts b/playwright-tests/business-logic/types/Client.ts
index 27db22be..0b2d456c 100644
--- a/playwright-tests/business-logic/types/Client.ts
+++ b/playwright-tests/business-logic/types/Client.ts
@@ -1,9 +1,12 @@
+import { IClientMockProfile } from "./ClientMockProfile";
+
export interface IClient {
clientTag: string,
accountName: string,
accountNumber?: string,
clientFlags: Partial,
- bgColor?: string
+ bgColor?: string,
+ mockProfile?: IClientMockProfile
}
export interface IClientFlags {
diff --git a/playwright-tests/business-logic/types/ClientMockProfile.ts b/playwright-tests/business-logic/types/ClientMockProfile.ts
new file mode 100644
index 00000000..7b3a1c56
--- /dev/null
+++ b/playwright-tests/business-logic/types/ClientMockProfile.ts
@@ -0,0 +1,8 @@
+export interface IAcordSoapConfig {
+ orgName: string;
+ companyProductCd: string;
+}
+
+export interface IClientMockProfile {
+ acordSoap?: IAcordSoapConfig;
+}
\ No newline at end of file
diff --git a/playwright-tests/business-logic/types/TestCase.ts b/playwright-tests/business-logic/types/TestCase.ts
index ce54843a..f3cd0111 100644
--- a/playwright-tests/business-logic/types/TestCase.ts
+++ b/playwright-tests/business-logic/types/TestCase.ts
@@ -162,18 +162,18 @@ export default class TestCase extends DisposableBase implements ITestCase {
public async setup(): Promise {
if (this.testData.policySoap && this.testData.claimDetails) {
const apiUtil = new CcisApiUtil();
- const accountNumber = this.testData.accountNumber ?? '550036';
+ const accountNumber = this.testData.accountNumber ?? '';
const policySoap = MockPolicyData.applyClientToPolicySoap(this.testData.policySoap, accountNumber);
// Create Policy
- const req = MockPolicyData.generateCreateMockPolicyRequest(this.testData.claimDetails.policyNumber, policySoap);
+ const req = MockPolicyData.generateCreateMockPolicyRequest(accountNumber,this.testData.claimDetails.policyNumber, 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);
}
@@ -216,25 +216,36 @@ export default class TestCase extends DisposableBase implements ITestCase {
};
}
- protected async dispose(): Promise {
- if (this.testData.policySoap && this.testData.claimDetails) {
- const apiUtil = new CcisApiUtil();
+ protected async dispose(): Promise {
+ 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);
}
}
}