From 57770537fd734275a07e1ce91c61b8321c5ac49a Mon Sep 17 00:00:00 2001 From: FrankRua Date: Tue, 1 Mar 2022 11:01:16 -0500 Subject: [PATCH] More unit tests --- jest.config.js | 3 + src/mixins/base-mixin.spec.js | 12 ++- src/store/store.spec.js | 81 +++++++++++++++++++ src/ux-components/list-card/list-card.spec.js | 3 +- 4 files changed, 97 insertions(+), 2 deletions(-) diff --git a/jest.config.js b/jest.config.js index 4a2601c8f..eceda28b1 100644 --- a/jest.config.js +++ b/jest.config.js @@ -17,6 +17,9 @@ module.exports = { "!src/layouts/vehicle-damage/windshield-options/windshield-options.vue", "!src/layouts/address-poc/address-poc.vue", "!src/layouts/nested-radio-poc/nested-radio.vue", + "!src/layouts/button-question-examples/**/*.vue", + "!src/layouts/part-questions/**/*.vue", + "!src/layouts/reveal/**/*.vue", ], //! means exclude from coverage. testMatch: ["**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"], coverageThreshold: { diff --git a/src/mixins/base-mixin.spec.js b/src/mixins/base-mixin.spec.js index bdc083399..da684af1b 100644 --- a/src/mixins/base-mixin.spec.js +++ b/src/mixins/base-mixin.spec.js @@ -26,6 +26,14 @@ describe("baseMixin.js", () => { expect(store.dispatch).toBeCalledWith(type, payload); }); + test("savePageDataToStore, should call store commit", () => { + const mixIn = getMixInInstance({}); + + mixIn.methods.savePageDataToStore('vehicle-year', {}); + + expect(store.commit).toBeCalledWith(storeMutations.UPDATE_PAGE_DATA, { page: 'vehicle-year', data: {}}); + }); + test("computed: storeActions should be equal to import object", () => { // Arrange const mixIn = getMixInInstance({}); @@ -91,9 +99,11 @@ function getMixInInstance({ isDispatchSuccess = true }) { // Attach mocks to mixin const baseMixIn = baseMixin; baseMixIn.methods.$route = route; - store.dispatch = storeDispatch; baseMixIn.methods.storeActions = storeActions; baseMixIn.methods.widgetNames = widgetNames; + store.dispatch = storeDispatch; + store.commit = jest.fn(); + return baseMixIn; } diff --git a/src/store/store.spec.js b/src/store/store.spec.js index fa75f3255..ccb715e50 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -166,6 +166,50 @@ describe("Mutations", () => { }); + it("Updates number of chips in state", () => { + // Arrange + const storeState = state; + + // Act + mutations.updateNumberOfChips(storeState, "1"); + + // Assert + expect(storeState.order.damage.numberOfChips).toEqual("1"); + }); + + it("Updates glass to replace in state", () => { + // Arrange + const storeState = state; + + // Act + mutations.updateGlassToReplace(storeState, ["Windshield"]); + + // Assert + expect(storeState.order.damage.glassToReplace).toEqual(["Windshield"]); + }); + + it("Updates Parts in state", () => { + // Arrange + const storeState = state; + + // Act + mutations.updateParts(storeState, { 'Windshield-Single': 'PARTNUM101'}); + + // Assert + expect(storeState.order.lineItems.glassParts).toEqual({ 'Windshield-Single': 'PARTNUM101'}); + }); + + it("Updates page data in state", () => { + // Arrange + const storeState = state; + + // Act + mutations.updatePageData(storeState, { page: 'vehicle-year', data: {} }); + + // Assert + expect(storeState.applicationUser.pageData['vehicle-year']).toEqual({}); + }); + }); describe("Actions", () => { @@ -480,4 +524,41 @@ describe("Getters", () => { }); + it("Damage getter, should return damage data", () => { + // Arrange + const storeState = state; + + // Act + mutations.updateGlassToReplace(storeState, ["Rear"]); + + // Assert + expect(getters.damage(storeState).glassToReplace).toEqual(["Rear"]); + + }); + + it("lineItems getter, should return lineItem data", () => { + // Arrange + const storeState = state; + + // Act + mutations.updateParts(storeState, {"Rear-Stationary": 'PART101'}); + + // Assert + expect(getters.lineItems(storeState).glassParts).toEqual({"Rear-Stationary": 'PART101'}); + + }); + + + it("PageData getter, should return page data for specific page", () => { + // Arrange + const storeState = state; + + // Act + mutations.updatePageData(storeState, { page: 'vehicle-year', data: {} }); + + // Assert + expect(getters.pageData(storeState)('vehicle-year')).toEqual({}); + + }); + }); \ No newline at end of file diff --git a/src/ux-components/list-card/list-card.spec.js b/src/ux-components/list-card/list-card.spec.js index 398c89c78..cee720503 100644 --- a/src/ux-components/list-card/list-card.spec.js +++ b/src/ux-components/list-card/list-card.spec.js @@ -204,11 +204,12 @@ describe("list-card.vue", () => { isRequired: true, isWide: false, modelValue: ["List Card Checkbox"], + buttonID: 'list-card-id' }, }); wrapper.vm.handleCheckChange(); // Assert - expect(wrapper.emitted()["isCheckedChanged"][0]).toEqual([{value: "List Card Checkbox", checkValue: Boolean}]); + expect(wrapper.emitted()["isCheckedChanged"][0]).toEqual([{value: "List Card Checkbox", checkValue: Boolean, buttonId: 'list-card-id'}]); }); it("Should set checkValue data if selectedButtonIDs has value(s)", async () => {