diff --git a/jest.config.js b/jest.config.js index c5401c28f..146264edd 100644 --- a/jest.config.js +++ b/jest.config.js @@ -17,10 +17,8 @@ module.exports = { "!src/layouts/capability-questions/**/*.vue", "!src/layouts/part-questions/**/*.vue", "!src/layouts/reveal/**/*.vue", - "!src/layouts/quote/**/*.vue", "!src/ux-components/text-link/**/*.vue", "!src/common-components/question-chain/**/*.vue", - "!src/layouts/quote/**/*.vue", // Temporary "!src/layouts/vin-lookup/**/*.vue", //Temporary for Quote page testing "!src/common-components/funnel-header/menu-modal/**/*.vue", // END diff --git a/src/common-components/base-input-button/base-input-button.vue b/src/common-components/base-input-button/base-input-button.vue index 572be9ef5..bbe92c1d5 100644 --- a/src/common-components/base-input-button/base-input-button.vue +++ b/src/common-components/base-input-button/base-input-button.vue @@ -45,6 +45,7 @@ export default { }; }, mounted() { + // Need this here and in the watch for vehicle-parts, unless there'a better way if (this.isChecked) { this.handleChange(this.modelValue); } @@ -188,6 +189,13 @@ export default { fieldOptions, // only need to expose this for unit test purposes }; }, + watch: { + isChecked(isChecked) { + if (isChecked) { + this.handleChange(this.modelValue); + } + }, + }, }; diff --git a/src/common-components/button-question/button-question.spec.js b/src/common-components/button-question/button-question.spec.js index 006cbcf2c..132e5edb9 100644 --- a/src/common-components/button-question/button-question.spec.js +++ b/src/common-components/button-question/button-question.spec.js @@ -1,4 +1,4 @@ -import { shallowMount } from "@vue/test-utils"; +import { shallowMount, mount } from "@vue/test-utils"; import buttonQuestion from "@/common-components/button-question/button-question"; import { getMountOptions } from "@/helpers/unit-test-helper.js"; @@ -115,6 +115,38 @@ describe("buttonQuestion.vue", () => { "2020", ]); }); + test("should accept an imported component for buttonTypeObject and successfully add it to components", async () => { + // Arrange + const mockComponent = { + name: "mockComponent", + methods: { + mockComponentMethod() { + return "mockComponentMethod return value"; + }, + }, + }; + + const wrapper = await shallowMount( + buttonQuestion, + setupMocks({ + propsData: { + buttonTypeString: "mockComponent", + buttonTypeObject: mockComponent, + }, + }) + ); + + // Act + const componentList = wrapper.vm.$options.components; + const componentExists = !!componentList.mockComponent; + const componentNameMatches = componentList.mockComponent.name === mockComponent.name; + const componentMethodMatches = + componentList.mockComponent.methods.mockComponentMethod() === + mockComponent.methods.mockComponentMethod(); + + // Assert + expect(componentExists && componentNameMatches && componentMethodMatches).toBe(true); + }); }); describe("buttonsInfo", () => { diff --git a/src/common-components/funnel-footer/funnel-footer.vue b/src/common-components/funnel-footer/funnel-footer.vue index 2a6119681..43b471e81 100644 --- a/src/common-components/funnel-footer/funnel-footer.vue +++ b/src/common-components/funnel-footer/funnel-footer.vue @@ -15,6 +15,10 @@ data-bs-target="#footerModal" data-bs-dismiss="modal" /> + +