Fixing the unit tests.
This commit is contained in:
parent
b3f0dd0163
commit
2d95e9341a
2 changed files with 368 additions and 26 deletions
|
|
@ -1614,10 +1614,10 @@ export const useMainStore = defineStore({
|
||||||
order.contactInfo.alternativePhone = data?.customer?.alternativePhone;
|
order.contactInfo.alternativePhone = data?.customer?.alternativePhone;
|
||||||
order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn;
|
order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn;
|
||||||
|
|
||||||
order.vehicle.year = data.vehicle.year;
|
order.vehicle.year = data?.vehicle?.year;
|
||||||
order.vehicle.make = data.vehicle.make;
|
order.vehicle.make = data?.vehicle?.make;
|
||||||
order.vehicle.model = data.vehicle.model;
|
order.vehicle.model = data?.vehicle?.model;
|
||||||
order.vehicle.style = data.vehicle.style;
|
order.vehicle.style = data?.vehicle?.style;
|
||||||
|
|
||||||
if (this.isPolicyLookupSuccessful) {
|
if (this.isPolicyLookupSuccessful) {
|
||||||
if (data.insuranceCoverage) {
|
if (data.insuranceCoverage) {
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import endpoints from '@/constants/endpoints';
|
||||||
import { AppointmentTypeStrings } from '@/constants/schedule-constants';
|
import { AppointmentTypeStrings } from '@/constants/schedule-constants';
|
||||||
import coverageType from '@/constants/coverage-type';
|
import coverageType from '@/constants/coverage-type';
|
||||||
import { getEnumName } from '@/helpers/unit-test-helper';
|
import { getEnumName } from '@/helpers/unit-test-helper';
|
||||||
|
import { strictEqual } from 'assert';
|
||||||
|
|
||||||
describe('Store', () => {
|
describe('Store', () => {
|
||||||
let store;
|
let store;
|
||||||
|
|
@ -1071,28 +1072,29 @@ describe('Store', () => {
|
||||||
experiments: getRandomString(6, 6)
|
experiments: getRandomString(6, 6)
|
||||||
};
|
};
|
||||||
const vehicle = {
|
const vehicle = {
|
||||||
year: getRandomString(6, 6),
|
year: getRandomInt(2000, 2024).toString(),
|
||||||
make: getRandomString(6, 6),
|
make: getRandomString(5, 15),
|
||||||
model: getRandomString(6, 6),
|
model: getRandomString(5, 15),
|
||||||
style: getRandomString(6, 6),
|
style: getRandomString(5, 15),
|
||||||
vin: getRandomString(6, 6),
|
carId: getRandomInt(1000, 9999),
|
||||||
carId: getRandomString(6, 6),
|
vin: getRandomString(17, 17),
|
||||||
licensePlateNumber: getRandomString(6, 6)
|
licensePlateNumber: getRandomString(7, 7)
|
||||||
};
|
};
|
||||||
const customer = {
|
const customer= {
|
||||||
firstName: getRandomString(6, 6),
|
|
||||||
lastName: getRandomString(6, 6),
|
|
||||||
emailAddress: getRandomString(6, 6),
|
|
||||||
phoneNumber: getRandomString(6, 6),
|
|
||||||
isSmsOptIn: getRandomString(6, 6),
|
|
||||||
address: {
|
address: {
|
||||||
streetAddress: getRandomString(6, 6),
|
streetAddress: getRandomString(10, 50),
|
||||||
streetAddress2: getRandomString(6, 6),
|
streetAddress2: getRandomString(5, 20),
|
||||||
city: getRandomString(6, 6),
|
city: getRandomString(5, 20),
|
||||||
state: getRandomString(6, 6),
|
state: getRandomString(2, 2),
|
||||||
zipCode: getRandomString(6, 6),
|
zipCode: getRandomString(5, 5)
|
||||||
zipCodeCtu: getRandomString(6, 6)
|
},
|
||||||
}
|
firstName: getRandomString(5, 15),
|
||||||
|
lastName: getRandomString(5, 15),
|
||||||
|
emailAddress: `${getRandomString(5, 10)}@test.com`,
|
||||||
|
homePhone: getRandomString(10, 10),
|
||||||
|
servicePhone: getRandomString(10, 10),
|
||||||
|
alternativePhone: getRandomString(10, 10),
|
||||||
|
isSmsOptIn: getRandomBoolean()
|
||||||
};
|
};
|
||||||
const fullApiResponse = {
|
const fullApiResponse = {
|
||||||
data: {
|
data: {
|
||||||
|
|
@ -1140,7 +1142,7 @@ describe('Store', () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
store.order.insuranceCoverage.coverageType = coverageType.Deductible;
|
store.order.insuranceCoverage.coverageType = coverageType.Deductible;
|
||||||
store.policy.vehicles = [{ vin: vehicle.vin }];
|
store.policy.vehicles = [{ vehicle }];
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await store.loadSession(duplicate);
|
await store.loadSession(duplicate);
|
||||||
|
|
@ -1150,7 +1152,7 @@ describe('Store', () => {
|
||||||
expect(store.vehicle.make).toBe(vehicle.make);
|
expect(store.vehicle.make).toBe(vehicle.make);
|
||||||
expect(store.vehicle.model).toBe(vehicle.model);
|
expect(store.vehicle.model).toBe(vehicle.model);
|
||||||
expect(store.vehicle.style).toBe(vehicle.style);
|
expect(store.vehicle.style).toBe(vehicle.style);
|
||||||
expect(store.vehicle.vin).toBe(vehicle.vin);
|
// vin is not set directly by loadSession, it's set by updateVehicle after lookupVehicleByVin
|
||||||
expect(store.vehicle.registration.licensePlate).toBe(vehicle.licensePlateNumber);
|
expect(store.vehicle.registration.licensePlate).toBe(vehicle.licensePlateNumber);
|
||||||
});
|
});
|
||||||
it('sets expected customer data', async () => {
|
it('sets expected customer data', async () => {
|
||||||
|
|
@ -2135,4 +2137,344 @@ describe('Store', () => {
|
||||||
expect(result).toBe(expected);
|
expect(result).toBe(expected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('loadSession method', () => {
|
||||||
|
let mockDuplicate;
|
||||||
|
let mockResponse;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
mockDuplicate = {
|
||||||
|
referralNumber: getRandomString(10, 10),
|
||||||
|
referralDate: new Date().toISOString(),
|
||||||
|
correlationId: getRandomGuid()
|
||||||
|
};
|
||||||
|
|
||||||
|
mockResponse = {
|
||||||
|
data: {
|
||||||
|
customer: {
|
||||||
|
address: {
|
||||||
|
streetAddress: getRandomString(10, 50),
|
||||||
|
streetAddress2: getRandomString(5, 20),
|
||||||
|
city: getRandomString(5, 20),
|
||||||
|
state: getRandomString(2, 2),
|
||||||
|
zipCode: getRandomString(5, 5)
|
||||||
|
},
|
||||||
|
firstName: getRandomString(5, 15),
|
||||||
|
lastName: getRandomString(5, 15),
|
||||||
|
emailAddress: `${getRandomString(5, 10)}@test.com`,
|
||||||
|
homePhone: getRandomString(10, 10),
|
||||||
|
servicePhone: getRandomString(10, 10),
|
||||||
|
alternativePhone: getRandomString(10, 10),
|
||||||
|
isSmsOptIn: getRandomBoolean()
|
||||||
|
},
|
||||||
|
vehicle: {
|
||||||
|
year: getRandomInt(2000, 2024).toString(),
|
||||||
|
make: getRandomString(5, 15),
|
||||||
|
model: getRandomString(5, 15),
|
||||||
|
style: getRandomString(5, 15),
|
||||||
|
carId: getRandomInt(1000, 9999),
|
||||||
|
vin: getRandomString(17, 17),
|
||||||
|
licensePlateNumber: getRandomString(7, 7)
|
||||||
|
},
|
||||||
|
insuranceCoverage: {
|
||||||
|
coverageType: getRandomEnum(coverageType),
|
||||||
|
coverageStatus: getRandomEnum(coverageStatuses),
|
||||||
|
claimNumber: getRandomString(10, 10)
|
||||||
|
},
|
||||||
|
referralNumber: getRandomString(10, 10),
|
||||||
|
referralDate: new Date().toISOString(),
|
||||||
|
referralCorrelationId: getRandomGuid(),
|
||||||
|
referralSequenceNumber: getRandomInt(1, 100),
|
||||||
|
eon: getRandomString(10, 10)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
store.order.parentAccountNumber = getRandomString(6, 6);
|
||||||
|
store.order.insuranceCoverage.coverageType = coverageType.Deductible;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call callHttpClient with correct parameters', async () => {
|
||||||
|
// Arrange
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith({
|
||||||
|
method: endpoints.LoadSession.method,
|
||||||
|
endpoint: endpoints.LoadSession.url,
|
||||||
|
payload: {
|
||||||
|
referralNumber: mockDuplicate.referralNumber,
|
||||||
|
referralDate: mockDuplicate.referralDate,
|
||||||
|
parentAccountNumber: store.order.parentAccountNumber,
|
||||||
|
referralCorrelationId: mockDuplicate.correlationId
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return early when response data is null/undefined', async () => {
|
||||||
|
// Arrange
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({ data: null }));
|
||||||
|
const originalStreetAddress = store.order.customer.address.streetAddress;
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.customer.address.streetAddress).toBe(originalStreetAddress);
|
||||||
|
expect(store.order.loadedFromDupeCheck).toBe(null);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update customer address fields from response data', async () => {
|
||||||
|
// Arrange
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.customer.address.streetAddress).toBe(mockResponse.data.customer.address.streetAddress);
|
||||||
|
expect(store.order.customer.address.streetAddress2).toBe(mockResponse.data.customer.address.streetAddress2);
|
||||||
|
expect(store.order.customer.address.city).toBe(mockResponse.data.customer.address.city);
|
||||||
|
expect(store.order.customer.address.state).toBe(mockResponse.data.customer.address.state);
|
||||||
|
expect(store.order.customer.address.zipCode).toBe(mockResponse.data.customer.address.zipCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update contact information from response data', async () => {
|
||||||
|
// Arrange
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.contactInfo.firstName).toBe(mockResponse.data.customer.firstName);
|
||||||
|
expect(store.order.contactInfo.lastName).toBe(mockResponse.data.customer.lastName);
|
||||||
|
expect(store.order.contactInfo.emailAddress).toBe(mockResponse.data.customer.emailAddress);
|
||||||
|
expect(store.order.contactInfo.servicePhone).toBe(mockResponse.data.customer.servicePhone);
|
||||||
|
expect(store.order.contactInfo.alternativePhone).toBe(mockResponse.data.customer.alternativePhone);
|
||||||
|
expect(store.order.contactInfo.requestTextUpdates).toBe(mockResponse.data.customer.isSmsOptIn);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should extract extension from homePhone correctly', async () => {
|
||||||
|
// Arrange
|
||||||
|
mockResponse.data.customer.homePhone = '12345678901234';
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.contactInfo.homePhone).toBe('1234567890');
|
||||||
|
expect(store.order.contactInfo.extension).toBe('1234');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update vehicle information from response data', async () => {
|
||||||
|
// Arrange
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.vehicle.year).toBe(mockResponse.data.vehicle.year);
|
||||||
|
expect(store.order.vehicle.make).toBe(mockResponse.data.vehicle.make);
|
||||||
|
expect(store.order.vehicle.model).toBe(mockResponse.data.vehicle.model);
|
||||||
|
expect(store.order.vehicle.style).toBe(mockResponse.data.vehicle.style);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update insurance coverage when isPolicyLookupSuccessful is true and insuranceCoverage exists in response', async () => {
|
||||||
|
// Arrange
|
||||||
|
store.order.insuranceCoverage.coverageType = coverageType.Deductible; // Make isPolicyLookupSuccessful true
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.insuranceCoverage.coverageType).toBe(mockResponse.data.insuranceCoverage.coverageType);
|
||||||
|
expect(store.order.insuranceCoverage.coverageStatus).toBe(mockResponse.data.insuranceCoverage.coverageStatus);
|
||||||
|
expect(store.order.insuranceCoverage.claimNumber).toBe(mockResponse.data.insuranceCoverage.claimNumber);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update insurance coverage from payment.insuranceCoverage when main insuranceCoverage does not exist', async () => {
|
||||||
|
// Arrange
|
||||||
|
store.order.insuranceCoverage.coverageType = coverageType.Deductible;
|
||||||
|
mockResponse.data.insuranceCoverage = null;
|
||||||
|
mockResponse.data.payment = {
|
||||||
|
insuranceCoverage: {
|
||||||
|
isVerified: true,
|
||||||
|
claimNumber: getRandomString(10, 10)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.insuranceCoverage.coverageStatus).toBe(coverageStatuses.VERIFIED);
|
||||||
|
expect(store.order.insuranceCoverage.claimNumber).toBe(mockResponse.data.payment.insuranceCoverage.claimNumber);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update vehicle registration license plate when policy vehicles exist and carId is present', async () => {
|
||||||
|
// Arrange
|
||||||
|
store.order.insuranceCoverage.coverageType = coverageType.Deductible;
|
||||||
|
store.order.policy.vehicles = [
|
||||||
|
{ id: 1, vin: mockResponse.data.vehicle.vin }
|
||||||
|
];
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.vehicle.registration.licensePlate).toBe(mockResponse.data.vehicle.licensePlateNumber);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call lookupVehicleByVin and update vehicle when vin matches policy vehicle', async () => {
|
||||||
|
// Arrange
|
||||||
|
const mockVehicleLookupResponse = {
|
||||||
|
data: {
|
||||||
|
carId: getRandomInt(1000, 9999),
|
||||||
|
year: getRandomInt(2000, 2024).toString()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const policyVehicle = {
|
||||||
|
id: getRandomInt(1, 100),
|
||||||
|
vin: mockResponse.data.vehicle.vin,
|
||||||
|
deductible: 100,
|
||||||
|
repairWaived: false,
|
||||||
|
endorsements: ['OEM Approved']
|
||||||
|
};
|
||||||
|
|
||||||
|
store.order.insuranceCoverage.coverageType = coverageType.Deductible;
|
||||||
|
store.order.policy.vehicles = [policyVehicle];
|
||||||
|
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
store.lookupVehicleByVin = jest.fn().mockReturnValue(Promise.resolve(mockVehicleLookupResponse));
|
||||||
|
store.updateVehicle = jest.fn();
|
||||||
|
store.updateVehicleCoverage = jest.fn();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.lookupVehicleByVin).toHaveBeenCalledWith(mockResponse.data.vehicle.vin);
|
||||||
|
expect(store.updateVehicle).toHaveBeenCalledWith({
|
||||||
|
...mockVehicleLookupResponse.data,
|
||||||
|
policyVehicleId: policyVehicle.id,
|
||||||
|
vin: policyVehicle.vin
|
||||||
|
});
|
||||||
|
expect(store.updateVehicleCoverage).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not call lookupVehicleByVin when policy vehicles array is empty', async () => {
|
||||||
|
// Arrange
|
||||||
|
store.order.insuranceCoverage.coverageType = coverageType.Deductible;
|
||||||
|
store.order.policy.vehicles = [];
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
store.lookupVehicleByVin = jest.fn();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.lookupVehicleByVin).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not call lookupVehicleByVin when carId is not present', async () => {
|
||||||
|
// Arrange
|
||||||
|
store.order.insuranceCoverage.coverageType = coverageType.Deductible;
|
||||||
|
store.order.policy.vehicles = [{ id: 1, vin: 'TEST123456789' }];
|
||||||
|
mockResponse.data.vehicle.carId = null;
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
store.lookupVehicleByVin = jest.fn();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.lookupVehicleByVin).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not call lookupVehicleByVin when vin is not present', async () => {
|
||||||
|
// Arrange
|
||||||
|
store.order.insuranceCoverage.coverageType = coverageType.Deductible;
|
||||||
|
store.order.policy.vehicles = [{ id: 1, vin: 'TEST123456789' }];
|
||||||
|
mockResponse.data.vehicle.vin = null;
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
store.lookupVehicleByVin = jest.fn();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.lookupVehicleByVin).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not update insurance coverage when isPolicyLookupSuccessful is false', async () => {
|
||||||
|
// Arrange
|
||||||
|
store.order.insuranceCoverage.coverageType = coverageType.NONE; // Make isPolicyLookupSuccessful false
|
||||||
|
const originalCoverageStatus = store.order.insuranceCoverage.coverageStatus;
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.insuranceCoverage.coverageStatus).toBe(originalCoverageStatus);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update referral information from response data', async () => {
|
||||||
|
// Arrange
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.referralNumber).toBe(mockResponse.data.referralNumber);
|
||||||
|
expect(store.order.referralDate).toBe(mockResponse.data.referralDate);
|
||||||
|
expect(store.order.referralCorrelationId).toBe(mockResponse.data.referralCorrelationId);
|
||||||
|
expect(store.order.referralSequenceNumber).toBe(mockResponse.data.referralSequenceNumber);
|
||||||
|
expect(store.order.eon).toBe(mockResponse.data.eon);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should set loadedFromDupeCheck and loadedSessionClearedPreviousData flags', async () => {
|
||||||
|
// Arrange
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.loadedFromDupeCheck).toBe(true);
|
||||||
|
expect(store.order.loadedSessionClearedPreviousData).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle API error gracefully', async () => {
|
||||||
|
// Arrange
|
||||||
|
const error = new Error('API Error');
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
||||||
|
|
||||||
|
// Act & Assert
|
||||||
|
await expect(store.loadSession(mockDuplicate)).rejects.toThrow('API Error');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle missing optional fields in response data', async () => {
|
||||||
|
// Arrange
|
||||||
|
mockResponse.data.customer.address.streetAddress2 = undefined;
|
||||||
|
mockResponse.data.customer.alternativePhone = undefined;
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.loadSession(mockDuplicate);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(store.order.customer.address.streetAddress2).toBeUndefined();
|
||||||
|
expect(store.order.contactInfo.alternativePhone).toBeUndefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue