From 658efb063aa9177054d02f5972b20e315d5a69a8 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Wed, 22 Jul 2026 09:18:14 -0400 Subject: [PATCH] INSR-523: Fix some unit test issues caught by copilot - Add space to a test name - Add unit tests for change to submitWorkOrder --- src/helpers/order-helper.spec.js | 144 ++++++++++++++++++ .../coverage-statement.spec.js | 2 +- 2 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 src/helpers/order-helper.spec.js diff --git a/src/helpers/order-helper.spec.js b/src/helpers/order-helper.spec.js new file mode 100644 index 00000000..3b9ac027 --- /dev/null +++ b/src/helpers/order-helper.spec.js @@ -0,0 +1,144 @@ +import { submitWorkOrder } from '@/helpers/order-helper'; + +let mockStore; + +jest.mock('@/store', () => ({ + useMainStore: jest.fn(() => mockStore) +})); + +describe('order-helper.js', () => { + describe('submitWorkOrder', () => { + beforeEach(() => { + mockStore = { + resetSubmittedOrder: jest.fn(), + createSubmittedOrder: jest.fn(() => Promise.resolve()), + registerClaim: jest.fn(() => Promise.resolve()), + isPolicyLookupSuccessful: false, + vehicle: { + policyVehicleId: null + }, + isClaimRegistrationRequired: false, + issConfig: { + callClaimRegistrationAtEnd: false + }, + applicationUser: { + saveSessionPromise: null + }, + order: { + referralNumber: null + }, + saveSession: jest.fn(() => Promise.resolve({ data: { referralNumber: 'REF-001' } })), + setSaveSessionInfo: jest.fn(), + setSaveSessionPromise: jest.fn() + }; + + jest.clearAllMocks(); + }); + + test('Resets order, saves session, and creates submitted order with submit type', async () => { + // Arrange + const submitType = 'SUBMIT'; + + // Act + await submitWorkOrder({ submitType }); + + // Assert + expect(mockStore.resetSubmittedOrder).toHaveBeenCalledTimes(1); + expect(mockStore.saveSession).toHaveBeenCalledTimes(1); + expect(mockStore.saveSession).toHaveBeenCalledWith({ + submitAfterSave: true, + createWorkOrderNumberForPIA: false, + bailoutOnError: true + }); + expect(mockStore.setSaveSessionPromise).toHaveBeenCalledTimes(1); + expect(mockStore.setSaveSessionInfo).toHaveBeenCalledWith({ referralNumber: 'REF-001' }); + expect(mockStore.createSubmittedOrder).toHaveBeenCalledTimes(1); + expect(mockStore.createSubmittedOrder).toHaveBeenCalledWith(submitType); + }); + + test('Registers claim when all claim registration conditions are met', async () => { + // Arrange + mockStore.isPolicyLookupSuccessful = true; + mockStore.vehicle.policyVehicleId = 42; + mockStore.isClaimRegistrationRequired = true; + mockStore.issConfig.callClaimRegistrationAtEnd = true; + + // Act + await submitWorkOrder({ submitType: 'SUBMIT' }); + + // Assert + expect(mockStore.registerClaim).toHaveBeenCalledTimes(1); + }); + + test('Does not register claim when policy lookup is not successful', async () => { + // Arrange + mockStore.isPolicyLookupSuccessful = false; + mockStore.vehicle.policyVehicleId = 42; + mockStore.isClaimRegistrationRequired = true; + mockStore.issConfig.callClaimRegistrationAtEnd = true; + + // Act + await submitWorkOrder({ submitType: 'SUBMIT' }); + + // Assert + expect(mockStore.registerClaim).not.toHaveBeenCalled(); + }); + + test('Does not register claim when policyVehicleId is null', async () => { + // Arrange + mockStore.isPolicyLookupSuccessful = true; + mockStore.vehicle.policyVehicleId = null; + mockStore.isClaimRegistrationRequired = true; + mockStore.issConfig.callClaimRegistrationAtEnd = true; + + // Act + await submitWorkOrder({ submitType: 'SUBMIT' }); + + // Assert + expect(mockStore.registerClaim).not.toHaveBeenCalled(); + }); + + test('Does not register claim when policyVehicleId is negative', async () => { + // Arrange + mockStore.isPolicyLookupSuccessful = true; + mockStore.vehicle.policyVehicleId = -1; + mockStore.isClaimRegistrationRequired = true; + mockStore.issConfig.callClaimRegistrationAtEnd = true; + + // Act + await submitWorkOrder({ submitType: 'SUBMIT' }); + + // Assert + expect(mockStore.registerClaim).not.toHaveBeenCalled(); + }); + + test('Does not register claim when claim registration is not required', async () => { + // Arrange + mockStore.isPolicyLookupSuccessful = true; + mockStore.vehicle.policyVehicleId = 42; + mockStore.isClaimRegistrationRequired = false; + mockStore.issConfig.callClaimRegistrationAtEnd = true; + + // Act + await submitWorkOrder({ submitType: 'SUBMIT' }); + + // Assert + expect(mockStore.registerClaim).not.toHaveBeenCalled(); + }); + + test('Does not register claim when claim registration is disabled in config', async () => { + // Arrange + mockStore.isPolicyLookupSuccessful = true; + mockStore.vehicle.policyVehicleId = 42; + mockStore.isClaimRegistrationRequired = true; + mockStore.issConfig.callClaimRegistrationAtEnd = false; + + // Act + await submitWorkOrder({ submitType: 'SUBMIT' }); + + // Assert + expect(mockStore.registerClaim).not.toHaveBeenCalled(); + }); + + }); +}); diff --git a/src/layouts/coverage-statement/coverage-statement.spec.js b/src/layouts/coverage-statement/coverage-statement.spec.js index 508c32bc..d53e890b 100644 --- a/src/layouts/coverage-statement/coverage-statement.spec.js +++ b/src/layouts/coverage-statement/coverage-statement.spec.js @@ -424,7 +424,7 @@ describe('coverageStatement.vue', () => { test(`returns ${expected} when isClaimRegistrationRequired is ${isClaimRegistrationRequired} ` + `and isPolicyLookupSuccessful is ${isPolicyLookupSuccessful} ` + `and isPendingClaimRegistration is ${isPendingClaimRegistration} ` - + `and policyVehicleId is ${(policyVehicleId == null ? 'NULL' : policyVehicleId)}` + + `and policyVehicleId is ${(policyVehicleId == null ? 'NULL' : policyVehicleId)} ` + `and callClaimRegistrationAtEnd is ${callClaimRegistrationAtEnd}`, () => { // Arrange const mainInitialState = {