diff --git a/src/digital-components/modal/modal.vue b/src/digital-components/modal/modal.vue index fb06197d..f5c9a221 100644 --- a/src/digital-components/modal/modal.vue +++ b/src/digital-components/modal/modal.vue @@ -33,7 +33,7 @@ loaderColor="white" :buttonText="footerButtonText" @click-event="validateAndEmit" - :class="isFooterButtonDisabled && 'form-test-invalid'" /> + :class="(isButtonDisabled || isFooterButtonDisabled) && 'form-test-invalid'" /> @@ -57,6 +57,7 @@ export default { onModalClosedCallback: { type: Function, }, + isButtonDisabled: Boolean }, setup(props) { const modalId = props.modalId ? props.modalId : `modal-${crypto.randomUUID()}`; @@ -80,7 +81,7 @@ export default { } }, resetButtonStyle() { - this.$refs.modalButtonMain.resetButtonStyle(); + this.$refs.modalButtonMain?.resetButtonStyle(); }, onModalOpened() { this.onModalOpenedCallback?.(); diff --git a/src/layouts/provider-preference/provider-preference.spec.js b/src/layouts/provider-preference/provider-preference.spec.js index a2140519..9c84a066 100644 --- a/src/layouts/provider-preference/provider-preference.spec.js +++ b/src/layouts/provider-preference/provider-preference.spec.js @@ -6,7 +6,6 @@ import { fetchCmsContentForPage, setupModalLinks } from "@/helpers/cms-content-h import { getMountOptions } from "@/helpers/unit-test-helper.js"; import { useMainStore } from "@/store"; import { navigationScenarios } from "@/router/router-constants/navigation-scenarios"; -import { nextTick } from "vue"; // Mock our module for promises. jest.mock("@/helpers/layout-helper.js", () => ({ diff --git a/src/layouts/provider-preference/provider-preference.vue b/src/layouts/provider-preference/provider-preference.vue index 70b1459f..954cede7 100644 --- a/src/layouts/provider-preference/provider-preference.vue +++ b/src/layouts/provider-preference/provider-preference.vue @@ -1,8 +1,5 @@ @@ -99,10 +119,38 @@ export default { &:last-child { margin-bottom: 0; } + margin-bottom: .5rem; } } } } } } + +.form-check { + .form-check-input { + &:checked { + + label { + p { + font-weight: 400 !important; + font-size: 1rem !important; + color: $gray-600 !important; + line-height: 1.5rem; + } + } + } + } + p { + font-weight: 400 !important; + font-size: 1rem !important; + color: $gray-600 !important; + line-height: 1.5rem; + } +} + +.form-test-error { + p { + font-weight: 500; + } +} diff --git a/src/layouts/provider-preference/tpa-recal-modal/tpa-recal-toggle/tpa-recal-toggle.spec.js b/src/layouts/provider-preference/tpa-recal-modal/tpa-recal-toggle/tpa-recal-toggle.spec.js new file mode 100644 index 00000000..869356ae --- /dev/null +++ b/src/layouts/provider-preference/tpa-recal-modal/tpa-recal-toggle/tpa-recal-toggle.spec.js @@ -0,0 +1,85 @@ +/* eslint-env jest */ +import { render } from '@testing-library/vue'; +import userEvent from '@testing-library/user-event'; +import '@testing-library/jest-dom'; +import { issPageValues } from '@/router/router-constants/issPage-values'; +import { queryStrings } from '@/constants/query-strings'; +import { GaActions } from "@/constants/analytics"; +import tpaRecalToggle from './tpa-recal-toggle.vue'; + +const mockText = Object.freeze({ + HEADER: 'Mock Header', + BODY: 'Mock Body', +}); +const mockRoute = { + query: { + issPage: issPageValues.PROVIDER_PREFERENCE, + }, +}; +const mockRouter = { + navigate: jest.fn(), +}; + +const mountOptions = { + global: { + propsData: { + cmsWidgetName: "MockWidgetName", + }, + mixins: [ + { + methods: { + getCmsContent: jest.fn((cmsWidgetName, fieldName) => { + if (cmsWidgetName === 'MockWidgetName') { + if (fieldName === 'HeaderText') { + return mockText.HEADER; + } + + if (fieldName === 'BodyText') { + return mockText.BODY; + } + } + + return ''; + }), + pushEventToGA: jest.fn() + }, + computed: { + GaActions() { + return GaActions; + }, + queryStrings() { + return queryStrings; + }, + } + }, + ], + mocks: { + $route: mockRoute, + $router: mockRouter, + }, + }, +}; + +describe('more details section', () => { + test('should NOT be displayed on the screen as a default.', () => { + const { container } = render(tpaRecalToggle, mountOptions); + + const moreDetailsSection = container.querySelector('#tpa-recal-detail-wrapper'); + + expect(moreDetailsSection).not.toBeVisible(); + }); + + test('should toggle when arrow clicked', async () => { + const user = userEvent.setup(); + const { container } = render(tpaRecalToggle, mountOptions); + const toggleLink = container.querySelector('#moreDetails');; + + await user.click(toggleLink); + let moreDetailsSection = container.querySelector('#tpa-recal-detail-wrapper'); + expect(moreDetailsSection).toBeVisible(); + + await user.click(toggleLink); + moreDetailsSection = container.querySelector('#tpa-recal-detail-wrapper'); + expect(moreDetailsSection).not.toBeVisible(); + }); +}); diff --git a/src/layouts/provider-preference/tpa-recal-modal/tpa-recal-toggle/tpa-recal-toggle.vue b/src/layouts/provider-preference/tpa-recal-modal/tpa-recal-toggle/tpa-recal-toggle.vue index a5504422..c524fcf6 100644 --- a/src/layouts/provider-preference/tpa-recal-modal/tpa-recal-toggle/tpa-recal-toggle.vue +++ b/src/layouts/provider-preference/tpa-recal-modal/tpa-recal-toggle/tpa-recal-toggle.vue @@ -9,6 +9,7 @@ linkType="text" href="#!" :text="textForToggle" + id="moreDetails" /> diff --git a/src/ux-components/checkbox/checkbox.vue b/src/ux-components/checkbox/checkbox.vue index 7b82d1f0..7427730f 100644 --- a/src/ux-components/checkbox/checkbox.vue +++ b/src/ux-components/checkbox/checkbox.vue @@ -13,7 +13,7 @@ :ref="checkboxName" />