From 778ed41d8995e24b891fa5d8c6622d9dff5f1c77 Mon Sep 17 00:00:00 2001 From: Udayboppasafelite Date: Tue, 16 Jun 2026 21:21:08 -0400 Subject: [PATCH] Code Work --- .../business-logic/data/ClientData.ts | 10 ++++- .../business-logic/data/MockPolicyData.ts | 25 ++++++------ .../business-logic/types/Client.ts | 5 ++- .../business-logic/types/ClientMockProfile.ts | 8 ++++ .../business-logic/types/TestCase.ts | 39 ++++++++++++------- 5 files changed, 56 insertions(+), 31 deletions(-) create mode 100644 playwright-tests/business-logic/types/ClientMockProfile.ts 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); } } }