diff --git a/playwright-tests/business-logic/data/MockPolicyData.ts b/playwright-tests/business-logic/data/MockPolicyData.ts
index 213ca961..0e641e16 100644
--- a/playwright-tests/business-logic/data/MockPolicyData.ts
+++ b/playwright-tests/business-logic/data/MockPolicyData.ts
@@ -25,7 +25,8 @@ const policySoapByScenario: { [x: string]: string } = {
'0021a': ' <_xml:ACORD> <_xml:SignonRs> <_xml:CustId> <_xml:SPName>Safelite <_xml:CustPermId>00005 <_xml:ClientDt>2025-01-03T14:13:58Z <_xml:CustLangPref>EN <_xml:ClientApp> <_xml:Org>Liberty Mutual <_xml:Name>PM CNG <_xml:Version>1.0 <_xml:ServerDt>2025-01-03T14:13:58Z <_xml:Language>EN <_xml:InsuranceSvcRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:PolicyInqRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:TransactionResponseDt>2025-01-03T14:13:58Z <_xml:MsgStatus> <_xml:MsgStatusCd>Success <_xml:AsOfDt>2017-02-06 <_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>M <_xml:PersPolicy> <_xml:PolicyNumber>${policyNumber} <_xml:PolicyVersion>STD <_xml:CompanyProductCd>liberty <_xml:LOBCd>AUTOP <_xml:ControllingStateProvCd>CA <_xml:ContractTerm> <_xml:EffectiveDt>2023-11-01 <_xml:ExpirationDt>2099-11-01 <_xml:GroupId>000 <_xml:MiscParty> <_xml:ItemIdInfo> <_xml:InsurerId>3861415357665 <_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>HOND <_xml:Model>ACCORD <_xml:ModelYear>2016 <_xml:Registration> <_xml:RegistrationId>UNKNOWN <_xml:StateProvCd>CA <_xml:VehIdentificationNumber>1HGCR2F31GA195371 <_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>500.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 ',
'0022a': ' <_xml:ACORD> <_xml:SignonRs> <_xml:CustId> <_xml:SPName>Safelite <_xml:CustPermId>00005 <_xml:ClientDt>2025-01-03T14:13:58Z <_xml:CustLangPref>EN <_xml:ClientApp> <_xml:Org>Liberty Mutual <_xml:Name>PM CNG <_xml:Version>1.0 <_xml:ServerDt>2025-01-03T14:13:58Z <_xml:Language>EN <_xml:InsuranceSvcRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:PolicyInqRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:TransactionResponseDt>2025-01-03T14:13:58Z <_xml:MsgStatus> <_xml:MsgStatusCd>Success <_xml:AsOfDt>2017-02-06 <_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>M <_xml:PersPolicy> <_xml:PolicyNumber>${policyNumber} <_xml:PolicyVersion>STD <_xml:CompanyProductCd>liberty <_xml:LOBCd>AUTOP <_xml:ControllingStateProvCd>CA <_xml:ContractTerm> <_xml:EffectiveDt>2023-11-01 <_xml:ExpirationDt>2099-11-01 <_xml:GroupId>000 <_xml:MiscParty> <_xml:ItemIdInfo> <_xml:InsurerId>3861415357665 <_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>HOND <_xml:Model>ACCORD <_xml:ModelYear>2016 <_xml:Registration> <_xml:RegistrationId>UNKNOWN <_xml:StateProvCd>CA <_xml:VehIdentificationNumber>1HGCR2F31GA195371 <_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>500.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 ',
'0023a': ' <_xml:ACORD> <_xml:SignonRs> <_xml:CustId> <_xml:SPName>Safelite <_xml:CustPermId>00005 <_xml:ClientDt>2025-01-03T14:13:58Z <_xml:CustLangPref>EN <_xml:ClientApp> <_xml:Org>Liberty Mutual <_xml:Name>PM CNG <_xml:Version>1.0 <_xml:ServerDt>2025-01-03T14:13:58Z <_xml:Language>EN <_xml:InsuranceSvcRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:PolicyInqRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:TransactionResponseDt>2025-01-03T14:13:58Z <_xml:MsgStatus> <_xml:MsgStatusCd>Success <_xml:AsOfDt>2017-02-06 <_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>M <_xml:PersPolicy> <_xml:PolicyNumber>${policyNumber} <_xml:PolicyVersion>STD <_xml:CompanyProductCd>liberty <_xml:LOBCd>AUTOP <_xml:ControllingStateProvCd>CA <_xml:ContractTerm> <_xml:EffectiveDt>2023-11-01 <_xml:ExpirationDt>2099-11-01 <_xml:GroupId>000 <_xml:MiscParty> <_xml:ItemIdInfo> <_xml:InsurerId>3861415357665 <_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>HOND <_xml:Model>ACCORD <_xml:ModelYear>2016 <_xml:Registration> <_xml:RegistrationId>UNKNOWN <_xml:StateProvCd>CA <_xml:VehIdentificationNumber>1HGCR2F31GA195371 <_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>500.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 ',
- '0024a': ' <_xml:ACORD> <_xml:SignonRs> <_xml:CustId> <_xml:SPName>Safelite <_xml:CustPermId>00005 <_xml:ClientDt>2025-01-03T14:13:58Z <_xml:CustLangPref>EN <_xml:ClientApp> <_xml:Org>Liberty Mutual <_xml:Name>PM CNG <_xml:Version>1.0 <_xml:ServerDt>2025-01-03T14:13:58Z <_xml:Language>EN <_xml:InsuranceSvcRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:PolicyInqRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:TransactionResponseDt>2025-01-03T14:13:58Z <_xml:MsgStatus> <_xml:MsgStatusCd>Success <_xml:AsOfDt>2017-02-06 <_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>M <_xml:PersPolicy> <_xml:PolicyNumber>${policyNumber} <_xml:PolicyVersion>STD <_xml:CompanyProductCd>liberty <_xml:LOBCd>AUTOP <_xml:ControllingStateProvCd>CA <_xml:ContractTerm> <_xml:EffectiveDt>2023-11-01 <_xml:ExpirationDt>2099-11-01 <_xml:GroupId>000 <_xml:MiscParty> <_xml:ItemIdInfo> <_xml:InsurerId>3861415357665 <_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>HOND <_xml:Model>ACCORD <_xml:ModelYear>2016 <_xml:Registration> <_xml:RegistrationId>UNKNOWN <_xml:StateProvCd>CA <_xml:VehIdentificationNumber>1HGCR2F31GA195371 <_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>500.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 '
+ '0024a': ' <_xml:ACORD> <_xml:SignonRs> <_xml:CustId> <_xml:SPName>Safelite <_xml:CustPermId>00005 <_xml:ClientDt>2025-01-03T14:13:58Z <_xml:CustLangPref>EN <_xml:ClientApp> <_xml:Org>Liberty Mutual <_xml:Name>PM CNG <_xml:Version>1.0 <_xml:ServerDt>2025-01-03T14:13:58Z <_xml:Language>EN <_xml:InsuranceSvcRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:PolicyInqRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:TransactionResponseDt>2025-01-03T14:13:58Z <_xml:MsgStatus> <_xml:MsgStatusCd>Success <_xml:AsOfDt>2017-02-06 <_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>M <_xml:PersPolicy> <_xml:PolicyNumber>${policyNumber} <_xml:PolicyVersion>STD <_xml:CompanyProductCd>liberty <_xml:LOBCd>AUTOP <_xml:ControllingStateProvCd>CA <_xml:ContractTerm> <_xml:EffectiveDt>2023-11-01 <_xml:ExpirationDt>2099-11-01 <_xml:GroupId>000 <_xml:MiscParty> <_xml:ItemIdInfo> <_xml:InsurerId>3861415357665 <_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>HOND <_xml:Model>ACCORD <_xml:ModelYear>2016 <_xml:Registration> <_xml:RegistrationId>UNKNOWN <_xml:StateProvCd>CA <_xml:VehIdentificationNumber>1HGCR2F31GA195371 <_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>500.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 ',
+ '0025a': ' <_xml:ACORD> <_xml:SignonRs> <_xml:CustId> <_xml:SPName>Safelite <_xml:CustPermId>00005 <_xml:ClientDt>2025-01-03T14:13:58Z <_xml:CustLangPref>EN <_xml:ClientApp> <_xml:Org>Liberty Mutual <_xml:Name>PM CNG <_xml:Version>1.0 <_xml:ServerDt>2025-01-03T14:13:58Z <_xml:Language>EN <_xml:InsuranceSvcRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:PolicyInqRs> <_xml:RqUID>cda7f1a9-6a7c-4851-8c75-9eba3f721e26 <_xml:TransactionResponseDt>2025-01-03T14:13:58Z <_xml:MsgStatus> <_xml:MsgStatusCd>Success <_xml:AsOfDt>2017-02-06 <_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>M <_xml:PersPolicy> <_xml:PolicyNumber>${policyNumber} <_xml:PolicyVersion>STD <_xml:CompanyProductCd>liberty <_xml:LOBCd>AUTOP <_xml:ControllingStateProvCd>CA <_xml:ContractTerm> <_xml:EffectiveDt>2023-11-01 <_xml:ExpirationDt>2099-11-01 <_xml:GroupId>000 <_xml:MiscParty> <_xml:ItemIdInfo> <_xml:InsurerId>3861415357665 <_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>HOND <_xml:Model>ACCORD <_xml:ModelYear>2016 <_xml:Registration> <_xml:RegistrationId>UNKNOWN <_xml:StateProvCd>CA <_xml:VehIdentificationNumber>1HGCR2F31GA195371 <_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>500.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 '
}
const claimRegistrationValue = "{\"claimNumber\":\"058913992\",\"reportedDate\":\"2023-11-01T18:56:08.264Z\",\"howReported\":\"digital\",\"status\":\"registered\",\"lossCategory\":\"glassOnly\",\"lossCause\":\"glassOnly\",\"lossCauseDetail\":null,\"lossDate\":\"2023-11-01\",\"lossTime\":\"00:00\",\"lossDescription\":\"ROCK FROM ROAD - NO ONE AT FAULT\",\"lossLocation\":{\"primary\":true,\"line1\":null,\"line2\":null,\"city\":\"Columbus\",\"county\":null,\"state\":\"OR\",\"postalCode\":\"\",\"country\":\"US\",\"type\":null,\"locationName\":null,\"subType\":null},\"_links\":{\"reporter\":{\"id\":\"65429f485e8cd37072a5bb5d\",\"href\":\"claims/058913992/contacts/65429f485e8cd37072a5bb5d\",\"title\":\"BRANDON JOHNSON\"},\"primaryContact\":null,\"insureds\":[{\"id\":\"65429f485e8cd37072a5bb5d\",\"href\":\"claims/058913992/contacts/65429f485e8cd37072a5bb5d\",\"title\":\"BRANDON JOHNSON\"}],\"pedestrianCyclists\":[],\"contacts\":{\"id\":null,\"href\":\"claims/058913992/contacts\"},\"claimDamage\":{\"id\":null,\"href\":\"claims/058913992/claim-damage\"},\"vehicleIncidents\":[{\"id\":\"65429f4b31209b23b788c38e\",\"href\":\"claims/058913992/vehicle-incidents/65429f4b31209b23b788c38e\",\"vehicle\":\"BMW740\"}],\"propertyIncidents\":{\"dwelling\":null,\"otherStructure\":null,\"personalProperty\":null,\"livingExpense\":null},\"injuryIncidents\":[]}}";
diff --git a/playwright-tests/business-logic/types/CustomerDetails.ts b/playwright-tests/business-logic/types/CustomerDetails.ts
index e3bed95c..1152f7a4 100644
--- a/playwright-tests/business-logic/types/CustomerDetails.ts
+++ b/playwright-tests/business-logic/types/CustomerDetails.ts
@@ -30,9 +30,10 @@ export interface IVehicleDetails {
make: string,
model: string,
style?: string,
- vin?: string|string[],
- licensePlateNumber?: string|string[],
- licensePlateState?: string|string[],
+ vin?: string | string[],
+ address?: string | IAddress[],
+ licensePlateNumber?: string | string[],
+ licensePlateState?: string | string[],
vehicleLookupType?: VehicleLookupType,
}
diff --git a/playwright-tests/business-logic/types/IAddress.ts b/playwright-tests/business-logic/types/IAddress.ts
index 2e0b0fd8..d8e37671 100644
--- a/playwright-tests/business-logic/types/IAddress.ts
+++ b/playwright-tests/business-logic/types/IAddress.ts
@@ -3,5 +3,6 @@ export interface IAddress {
city: string,
state: string,
postalCode: string,
- country: string
+ country?: string,
+ lastName?: string
}
\ No newline at end of file
diff --git a/playwright-tests/business-logic/types/ITestData.ts b/playwright-tests/business-logic/types/ITestData.ts
index d4ed42e2..be4c1e25 100644
--- a/playwright-tests/business-logic/types/ITestData.ts
+++ b/playwright-tests/business-logic/types/ITestData.ts
@@ -10,6 +10,7 @@ export interface ITestData {
isPolicyFound: boolean, // Effective difference between advanced and essential
isUseVehicleOnPolicy: boolean, // Should we use the vehicle on the policy?
isVehicleLookupValidations: boolean, // Should we validate vehicle lookup?
+ isAddressLookupValidations: boolean, // Should we validate address lookup errors?
isVehicleSelectBailout: boolean, // Should we bailout on vehicle lookup?
isNoComp: boolean, // Is this a NoComp policy?
isItac: boolean, // Is this an ITAC scenario?
diff --git a/playwright-tests/business-logic/types/ITestPages.ts b/playwright-tests/business-logic/types/ITestPages.ts
index 46da9d0a..b4d01607 100644
--- a/playwright-tests/business-logic/types/ITestPages.ts
+++ b/playwright-tests/business-logic/types/ITestPages.ts
@@ -1,3 +1,4 @@
+import { AddressLookupPage } from "../../pages/addresslookuppage";
import { BailoutPage } from "../../pages/BailoutPage";
import CapabilityQuestionsPage from "../../pages/CapabilityQuestionsPage";
import { ContactConfirmationPage } from "../../pages/ContactConfirmationPage";
@@ -59,5 +60,6 @@ export default interface ITestPages {
vehicleLookupAddressPage: VehicleLookupAddressPage,
vehicleLookupLicensePage: VehicleLookupLicensePage,
welcomePage: WelcomePage,
- moldingQuestionsPage: MoldingQuestionsPage
+ moldingQuestionsPage: MoldingQuestionsPage,
+ addressLookupPage: AddressLookupPage,
}
\ 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 3378b4af..3103b990 100644
--- a/playwright-tests/business-logic/types/TestCase.ts
+++ b/playwright-tests/business-logic/types/TestCase.ts
@@ -44,6 +44,7 @@ import MockPolicyData from "@business-logic/data/MockPolicyData";
import VehiclePartQuestionsPage from "../../pages/VehiclePartsPage";
import CapabilityQuestionsPage from "../../pages/CapabilityQuestionsPage";
import { MoldingQuestionsPage } from "../../pages/MoldingQuestionsPage";
+import { AddressLookupPage } from "../../pages/addresslookuppage";
export default class TestCase extends DisposableBase implements ITestCase {
public static FrameworkConfig: FrameworkConfig = {
@@ -205,7 +206,8 @@ export default class TestCase extends DisposableBase implements ITestCase {
vehicleLookupAddressPage: new VehicleLookupAddressPage(page),
vehicleLookupLicensePage: new VehicleLookupLicensePage(page),
welcomePage: new WelcomePage(page),
- moldingQuestionsPage: new MoldingQuestionsPage(page)
+ moldingQuestionsPage: new MoldingQuestionsPage(page),
+ addressLookupPage: new AddressLookupPage(page)
};
}
diff --git a/playwright-tests/pages/Addresslookuppage.ts b/playwright-tests/pages/Addresslookuppage.ts
new file mode 100644
index 00000000..4aa73601
--- /dev/null
+++ b/playwright-tests/pages/Addresslookuppage.ts
@@ -0,0 +1,84 @@
+import { expect, type Locator, type Page } from '@playwright/test';
+import { BasePage } from './BasePage';
+import { IAddress } from '@business-logic/types/IAddress';
+
+export class AddressLookupPage extends BasePage {
+ readonly page: Page;
+ readonly streetAddressTextBox: Locator;
+ readonly cityTextBox: Locator;
+ readonly stateDropdown: Locator;
+ readonly zipTextBox: Locator;
+ readonly lastNameTextBox: Locator;
+ readonly addressNoMatchTextBox: Locator;
+ readonly stateRestrictionsTextBox: Locator;
+ url = process.env['baseurl']! + '/?issPage=address-lookup';
+
+ constructor(page: Page) {
+ super(page);
+ this.page = page;
+ this.streetAddressTextBox = page.getByRole('textbox', { name: 'Street address' })
+ this.cityTextBox = page.getByRole('textbox', { name: 'City' })
+ this.stateDropdown = page.getByRole('combobox')
+ this.zipTextBox = page.getByRole('textbox', { name: 'ZIP code' })
+ this.lastNameTextBox = page.getByRole('textbox', { name: 'Last name' })
+ this.addressNoMatchTextBox = page.getByText('Your address didn’t return a VIN matchPlease re-enter the information below or');
+ this.stateRestrictionsTextBox = page.getByText('State restrictionsLooks like');
+ }
+
+ async enterAddress(street, city, state, zip, lastName) {
+ this.streetAddressTextBox.clear();
+ this.page.waitForTimeout(250);
+ this.streetAddressTextBox.fill(street);
+ this.cityTextBox.clear();
+ this.page.waitForTimeout(250);
+ this.cityTextBox.fill(city);
+ this.stateDropdown.selectOption(state);
+ this.zipTextBox.clear();
+ this.page.waitForTimeout(250);
+ this.zipTextBox.fill(zip);
+ this.lastNameTextBox.clear();
+ this.page.waitForTimeout(250);
+ this.lastNameTextBox.fill(lastName);
+ this.page.waitForTimeout(250);
+
+ }
+ async forceAddressFormToAppear() {
+ await expect(async () => {
+ await this.streetAddressTextBox.click();
+ await this.streetAddressTextBox.pressSequentially('7400 Safelite Way');
+ await this.streetAddressTextBox.press('Tab');
+ await expect(this.zipTextBox).toBeVisible({ timeout: 100 });
+ }).toPass();
+ }
+ async populateAddress(fullAdddress: IAddress) {
+
+ if (fullAdddress.street) {
+ // Force address form to appear
+ await this.forceAddressFormToAppear();
+
+ // Fill address
+ await this.fillAndValidate(this.streetAddressTextBox, fullAdddress.street);
+ await this.fillAndValidate(this.zipTextBox, fullAdddress.postalCode)
+ await this.fillAndValidate(this.cityTextBox, fullAdddress.city);
+ await this.stateDropdown.selectOption(fullAdddress.state);
+ }
+
+ if (fullAdddress.lastName) {
+ await this.fillAndValidate(this.lastNameTextBox, fullAdddress.lastName!);
+ }
+ // if (fullAdddress.firstName!) {
+ // await this.fillAndValidate(this.firstNameTextBox, fullAdddress.firstName);
+ // }
+ }
+
+ async validateAddressLookupAlerts(addressSet: IAddress[]) {
+ await this.populateAddress(addressSet[0]);
+ await this.continueButton.click();
+ await expect(this.addressNoMatchTextBox).toBeVisible();
+ await this.populateAddress(addressSet[1]);
+ await this.continueButton.click();
+ await expect(this.stateRestrictionsTextBox).toBeVisible();
+ await this.populateAddress(addressSet[2]);
+ }
+
+}
\ No newline at end of file
diff --git a/playwright-tests/playwright.config.ts b/playwright-tests/playwright.config.ts
index 20bf301e..7edf4eb3 100644
--- a/playwright-tests/playwright.config.ts
+++ b/playwright-tests/playwright.config.ts
@@ -58,7 +58,7 @@ export default defineConfig({
['junit'],
['list']
],
- timeout: 120_000,
+ timeout: 180_000,
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Base URL to use in actions like `await page.goto('/')`. */
diff --git a/playwright-tests/tests/0000__M.test.ts b/playwright-tests/tests/0000__M.test.ts
index 11f110fe..a8ae5839 100644
--- a/playwright-tests/tests/0000__M.test.ts
+++ b/playwright-tests/tests/0000__M.test.ts
@@ -52,6 +52,7 @@ import advancedScenario0022TestCases from "./advanced/0022a_VehicleByVIN";
import advancedScenario0023TestCases from "./advanced/0023a_VehicleByVINPartsQns";
import { createAccessibilityHtmlReport } from "@impl/utils/ReportUtils";
import advancedScenario0024TestCases from "./advanced/0024a_VehicleByVINUnverifiedBailout";
+import advancedScenario0025TestCases from "./advanced/0025a_VehicleByVINUnverifiedBailout";
@@ -283,6 +284,11 @@ test.describe.parallel('ISS QA Automation Regression', () => {
for (const testCase of advancedScenario0024TestCases) {
test(...prepareTest(testCase, run, options, ruleEngine));
}
+
+ // Scenario 0025a
+ for (const testCase of advancedScenario0025TestCases) {
+ test(...prepareTest(testCase, run, options, ruleEngine));
+ }
});
@@ -327,7 +333,7 @@ async function runWorkflow(page: Page, testCase: TestCase) {
appointmentDetails, isSafelite, endorsements,
partQuestions, paymentDetails, isNoComp, isItac, isRecalNotification,
isRecalWarning, servicePackage, hasStateLawPopup, otherVehiclesOnPolicy,
- isSeparateApptsWarning, vehiclePartQuestions, editVehicleDetails,
+ isSeparateApptsWarning, vehiclePartQuestions, editVehicleDetails, isAddressLookupValidations,
hasMilitaryWarning, capabilityQuestions, isUseVehicleOnPolicy, isVehicleLookupValidations, isMoldingQuestion } = testCase.testData;
let { isPolicyFound } = testCase.testData; // Allow isPolicyFound to be re-assigned
@@ -340,7 +346,7 @@ async function runWorkflow(page: Page, testCase: TestCase) {
endorsementsPage, vehicleLookupPage, partQuestionsPage, paymentMethodPage,
vehicleLookupAddressPage, vehicleLookupLicensePage, vinLookupPage,
bailoutPage, tpaSearchPage, tpaSubmitPage, tpaConfirmationPage,
- vehiclePartQuestionsPage, capabilityQuestionsPage, moldingQuestionsPage } = testCase.pages;
+ vehiclePartQuestionsPage, capabilityQuestionsPage, moldingQuestionsPage, addressLookupPage } = testCase.pages;
// Destructure bailout flags
const { isVehicleSelectBailout, isDoNotSeeMyShopBailout, isTpaNotEnabledBailout,
@@ -489,6 +495,7 @@ async function runWorkflow(page: Page, testCase: TestCase) {
});
+
if (testCase.testData.isVehicleSelectBailout) {
await test.step('Lookup vehicle >> By VIN-' + vehicleDetails!.vin!, async () => {
await vinLookupPage.enterVin(vehicleDetails!.vin!);
@@ -504,33 +511,44 @@ async function runWorkflow(page: Page, testCase: TestCase) {
return;
}
- switch (vehicleDetails!.vehicleLookupType!) {
- case VehicleLookupType.Address:
- await test.step('VehicleLookupAddressPage >> Lookup by address: ' + customerDetails!.address.street, async () => {
- await vehicleLookupAddressPage.lookupVehicleByAddress(customerDetails!, vehicleDetails!);
- await vehicleLookupAddressPage.nextPage();
- });
- break;
- case VehicleLookupType.LicensePlateNumber:
- if (isVehicleLookupValidations) {
- await test.step('VehicleLookupLicensePage >> Lookup by license plate: ' + vehicleDetails!.licensePlateNumber, async () => {
- await vehicleLookupLicensePage.enterPlateDetails(vehicleDetails!, isVehicleLookupValidations);
- await vehicleLookupLicensePage.nextPage();
- });
- } else {
- await test.step('VehicleLookupLicensePage >> Lookup by license plate: ' + vehicleDetails!.licensePlateNumber, async () => {
- await vehicleLookupLicensePage.enterPlateDetails(vehicleDetails!);
- await vehicleLookupLicensePage.nextPage();
- });
+ if (isAddressLookupValidations) {
+ await test.step('Address Lookup validations >> Vehicle Lookup by address: ' + customerDetails!.address.street, async () => {
+ if (Array.isArray(vehicleDetails?.address)) {
+ await addressLookupPage.validateAddressLookupAlerts(vehicleDetails?.address);
+ await addressLookupPage.nextPage();
}
- break;
- case VehicleLookupType.Vin:
- await test.step('VinLookupPage >> Lookup by VIN: ' + vehicleDetails!.vin!, async () => {
- await vinLookupPage.enterVin(vehicleDetails!.vin!, isVehicleLookupValidations);
- await vinLookupPage.nextPage();
- });
- break;
+ });
+ } else {
+
+ switch (vehicleDetails!.vehicleLookupType!) {
+ case VehicleLookupType.Address:
+ await test.step('VehicleLookupAddressPage >> Lookup by address: ' + customerDetails!.address.street, async () => {
+ await vehicleLookupAddressPage.lookupVehicleByAddress(customerDetails!, vehicleDetails!);
+ await vehicleLookupAddressPage.nextPage();
+ });
+ break;
+ case VehicleLookupType.LicensePlateNumber:
+ if (isVehicleLookupValidations) {
+ await test.step('VehicleLookupLicensePage >> Lookup by license plate: ' + vehicleDetails!.licensePlateNumber, async () => {
+ await vehicleLookupLicensePage.enterPlateDetails(vehicleDetails!, isVehicleLookupValidations);
+ await vehicleLookupLicensePage.nextPage();
+ });
+
+ } else {
+ await test.step('VehicleLookupLicensePage >> Lookup by license plate: ' + vehicleDetails!.licensePlateNumber, async () => {
+ await vehicleLookupLicensePage.enterPlateDetails(vehicleDetails!);
+ await vehicleLookupLicensePage.nextPage();
+ });
+ }
+ break;
+ case VehicleLookupType.Vin:
+ await test.step('VinLookupPage >> Lookup by VIN: ' + vehicleDetails!.vin!, async () => {
+ await vinLookupPage.enterVin(vehicleDetails!.vin!, isVehicleLookupValidations);
+ await vinLookupPage.nextPage();
+ });
+ break;
+ }
}
}
if (isMoldingQuestion) {
diff --git a/playwright-tests/tests/advanced/0024a_VehicleByVINUnverifiedBailout.ts b/playwright-tests/tests/advanced/0024a_VehicleByVINUnverifiedBailout.ts
index 0307088b..52ae3c5c 100644
--- a/playwright-tests/tests/advanced/0024a_VehicleByVINUnverifiedBailout.ts
+++ b/playwright-tests/tests/advanced/0024a_VehicleByVINUnverifiedBailout.ts
@@ -2,7 +2,7 @@ import ClientData from "@business-logic/data/ClientData";
import TestCase from "@business-logic/types/TestCase";
import { DamageType, PartQuestionType, PaymentType, ServiceLocation, ServicePackage, VehicleDamage, VehicleLookupType } from "@business-logic/types/Enums";
import { ITestData } from "@business-logic/types/ITestData"
-import { faker } from "@faker-js/faker";
+import { faker, tr } from "@faker-js/faker";
import { getNextWeekday } from "@impl/utils/DateUtils";
import MockPolicyData from "@business-logic/data/MockPolicyData";
import { ICustomerDetails } from "@business-logic/types/CustomerDetails";
@@ -35,8 +35,9 @@ const advancedScenario0024Data: Partial = {
endorsements: undefined,
isUseVehicleOnPolicy: false,
isVehicleLookupValidations: false,
- isVehicleSelectBailout: true,
- isMoldingQuestion: true,
+ isVehicleSelectBailout: false,
+ isAddressLookupValidations: true,
+ isMoldingQuestion: false,
isSafelite: true,
servicePackage: faker.helpers.enumValue(ServicePackage),
customerDetails: customerDetails,
@@ -49,11 +50,15 @@ const advancedScenario0024Data: Partial = {
policySoap: policySoap,
vehicleDetails: {
year: '2015',
- make: 'Honda',
- model: 'Accord',
- style: '4 door sedan',
- vehicleLookupType: VehicleLookupType.Vin,
- vin: '0HGCR2E30FA099831',
+ make: 'Ford',
+ model: 'F Series F150',
+ style: '2 door super cab',
+ vehicleLookupType: VehicleLookupType.Address,
+ address: [
+ { street: '9 Test Street', city: 'Columbus', state: 'OH', postalCode: '43220', lastName: 'Test' },
+ { street: '8621 GREENLEAF AVE', city: 'Whittier', state: 'California', postalCode: '90602', lastName: 'Johnson' },
+ { street: '10212 JEWEL CT', city: 'Conroe', state: 'Texas', postalCode: '77385', lastName: 'Reed' }
+ ],
},
vehicleDamage: [
VehicleDamage.WindshieldCrack,
diff --git a/playwright-tests/tests/advanced/0025a_VehicleByVINUnverifiedBailout.ts b/playwright-tests/tests/advanced/0025a_VehicleByVINUnverifiedBailout.ts
new file mode 100644
index 00000000..2cdcaaaf
--- /dev/null
+++ b/playwright-tests/tests/advanced/0025a_VehicleByVINUnverifiedBailout.ts
@@ -0,0 +1,83 @@
+import ClientData from "@business-logic/data/ClientData";
+import TestCase from "@business-logic/types/TestCase";
+import { DamageType, PartQuestionType, PaymentType, ServiceLocation, ServicePackage, VehicleDamage, VehicleLookupType } from "@business-logic/types/Enums";
+import { ITestData } from "@business-logic/types/ITestData"
+import { faker } from "@faker-js/faker";
+import { getNextWeekday } from "@impl/utils/DateUtils";
+import MockPolicyData from "@business-logic/data/MockPolicyData";
+import { ICustomerDetails } from "@business-logic/types/CustomerDetails";
+
+const nextWeekday = getNextWeekday();
+const customerDetails: ICustomerDetails = {
+ firstName: faker.person.firstName(),
+ lastName: faker.person.lastName(),
+ email: 'itqatest@safelite.com',
+ phoneNumber: '614-531-0031',
+ notes: 'Automated Test',
+ address: {
+ street: faker.location.streetAddress(),
+ city: 'Columbus',
+ state: 'OH',
+ postalCode: '43220',
+ country: 'United States'
+ }
+}
+
+const policyNumber = `~AutomatedScenario0025a${faker.string.uuid().substring(0, 6)}`;
+const policySoap = MockPolicyData.getPolicySoapByScenario('0025a', customerDetails, policyNumber);
+
+const advancedScenario0025Data: Partial = {
+ clientTag: '',
+ isDuplicateClaim: false,
+ isPolicyFound: false,
+ isNoComp: false,
+ hasStateLawPopup: false,
+ endorsements: undefined,
+ isUseVehicleOnPolicy: false,
+ isVehicleLookupValidations: false,
+ isVehicleSelectBailout: true,
+ isMoldingQuestion: true,
+ isSafelite: true,
+ servicePackage: faker.helpers.enumValue(ServicePackage),
+ customerDetails: customerDetails,
+ claimDetails: {
+ policyNumber: policyNumber,
+ policyDeductible: 0.00,
+ damageDate: '2017-06-02',
+ damageCause: DamageType.Vandalism
+ },
+ policySoap: policySoap,
+ vehicleDetails: {
+ year: '2015',
+ make: 'Honda',
+ model: 'Accord',
+ style: '4 door sedan',
+ vehicleLookupType: VehicleLookupType.Vin,
+ vin: '0HGCR2E30FA099831',
+ },
+ vehicleDamage: [
+ VehicleDamage.WindshieldCrack,
+ ],
+ appointmentDetails: {
+ serviceLocation: ServiceLocation.InShop,
+ shopAddress: undefined,
+ appointmentDate: nextWeekday
+ },
+
+}
+
+// TODO: Add validation for deductible/covered amount
+const advancedClients = ClientData.getAdvancedClients();
+const advancedScenario0025TestCases: TestCase[] = [];
+for (const client of advancedClients) {
+ const data = { ...advancedScenario0025Data };
+ data.clientTag = client.clientTag;
+ const tc = new TestCase({
+ name: `0025a Advanced client Unlisted Vehicle Bailout: "${client.accountName}"`,
+ tags: [`@${client.clientTag}`, `@${client.accountName}`, '@Advanced'],
+ testData: data
+ }, undefined, '00255a');
+ advancedScenario0025TestCases.push(tc);
+}
+
+export default advancedScenario0025TestCases;
\ No newline at end of file
diff --git a/playwright-tests/tests/mockResponses/0002a_Advanced_Replace_Deductible_Client/schedule/api/v1/schedule/shop-time-slots.json b/playwright-tests/tests/mockResponses/0002a_Advanced_Replace_Deductible_Client/schedule/api/v1/schedule/shop-time-slots.json
index ba6e6c41..b807b200 100644
--- a/playwright-tests/tests/mockResponses/0002a_Advanced_Replace_Deductible_Client/schedule/api/v1/schedule/shop-time-slots.json
+++ b/playwright-tests/tests/mockResponses/0002a_Advanced_Replace_Deductible_Client/schedule/api/v1/schedule/shop-time-slots.json
@@ -3,7 +3,7 @@
"estimatedServiceMinutesMaximum": 120,
"days": [
{
- "date": "2025-02-22",
+ "date": "2025-03-01",
"timeSlots": [
{
"id": "01813-01813-S-B*20873*ALL DAY DROP OFF",
@@ -14,7 +14,40 @@
]
},
{
- "date": "2025-02-24",
+ "date": "2025-03-02",
+ "timeSlots": [
+ {
+ "id": "01813-01813-S-B*20873*ALL DAY DROP OFF",
+ "startTime": "07:30",
+ "endTime": "17:00",
+ "offerPremium": false
+ }
+ ]
+ },
+ {
+ "date": "2025-03-03",
+ "timeSlots": [
+ {
+ "id": "01813-01813-S-B*20873*ALL DAY DROP OFF",
+ "startTime": "07:30",
+ "endTime": "17:00",
+ "offerPremium": false
+ }
+ ]
+ },
+ {
+ "date": "2025-03-04",
+ "timeSlots": [
+ {
+ "id": "01813-01813-S-B*20873*ALL DAY DROP OFF",
+ "startTime": "07:30",
+ "endTime": "17:00",
+ "offerPremium": false
+ }
+ ]
+ },
+ {
+ "date": "2025-03-24",
"timeSlots": [
{
"id": "01813-01813-S-B*20875*ALL DAY DROP OFF",
@@ -25,7 +58,7 @@
]
},
{
- "date": "2025-02-25",
+ "date": "2025-03-25",
"timeSlots": [
{
"id": "01813-01813-S-B*20876*ALL DAY DROP OFF",
@@ -36,7 +69,7 @@
]
},
{
- "date": "2025-02-26",
+ "date": "2025-03-26",
"timeSlots": [
{
"id": "01813-01813-S-B*20877*ALL DAY DROP OFF",
@@ -47,7 +80,7 @@
]
},
{
- "date": "2025-02-27",
+ "date": "2025-03-27",
"timeSlots": [
{
"id": "01813-01813-S-B*20878*ALL DAY DROP OFF",
@@ -58,7 +91,7 @@
]
},
{
- "date": "2025-02-28",
+ "date": "2025-03-28",
"timeSlots": [
{
"id": "01813-01813-S-B*20879*ALL DAY DROP OFF",
@@ -69,7 +102,7 @@
]
},
{
- "date": "2025-03-01",
+ "date": "2025-04-01",
"timeSlots": [
{
"id": "01813-01813-S-B*20880*ALL DAY DROP OFF",