Code Work

This commit is contained in:
Udayboppasafelite 2026-06-16 21:21:08 -04:00
parent 26406053db
commit 778ed41d89
5 changed files with 56 additions and 31 deletions

View file

@ -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' },
},
},

View file

@ -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': '<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>',
@ -52,20 +53,16 @@ export default class MockPolicyData {
}
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>', `<_xml:Org>${orgName}</_xml:Org>`)
.replaceAll('<_xml:CompanyProductCd>liberty</_xml:CompanyProductCd>', `<_xml:CompanyProductCd>${companyProductCd}</_xml:CompanyProductCd>`);
.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(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;

View file

@ -1,9 +1,12 @@
import { IClientMockProfile } from "./ClientMockProfile";
export interface IClient {
clientTag: string,
accountName: string,
accountNumber?: string,
clientFlags: Partial<IClientFlags>,
bgColor?: string
bgColor?: string,
mockProfile?: IClientMockProfile
}
export interface IClientFlags {

View file

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

View file

@ -162,18 +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 ?? '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<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);
}
}
}