From 0fc57dedb10bfc02a6de4567415e5dda8a907fb1 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Mon, 8 Jan 2024 20:59:07 -0500 Subject: [PATCH] Spinner updates, refactored for back button --- .../address-lookup/address-lookup.spec.js | 16 +++++++++----- src/layouts/address-lookup/address-lookup.vue | 7 +------ .../address-vehicles/address-vehicles.spec.js | 10 ++++++--- .../address-vehicles/address-vehicles.vue | 5 +---- .../capability-questions.vue | 2 +- .../contact-details/contact-details.spec.js | 10 +++++---- .../contact-details/contact-details.vue | 13 ++---------- .../coverage-statement/coverage-statement.vue | 2 +- .../duplicate-check/duplicate-check.spec.js | 10 +++++---- .../duplicate-check/duplicate-check.vue | 8 +------ .../license-plate-lookup.spec.js | 9 +++++--- .../license-plate-lookup.vue | 6 +----- .../molding-questions/molding-questions.vue | 2 +- .../order-confirmation/order-confirmation.vue | 5 +---- src/layouts/part-questions/part-questions.vue | 2 +- src/layouts/payment-page/payment-page.vue | 7 +------ .../policy-endorsements.spec.js | 12 ++++++----- .../policy-endorsements.vue | 5 +---- .../policy-holder-details.spec.js | 8 ++++--- .../policy-holder-details.vue | 6 +----- .../provider-preference.vue | 5 +---- src/layouts/review-page/review-page.vue | 5 +---- src/layouts/schedule-page/schedule-page.vue | 5 +---- .../service-location/service-location.spec.js | 8 +++++-- .../service-location/service-location.vue | 8 +------ .../service-packages/service-packages.vue | 5 +---- .../tpa-confirmation/tpa-confirmation.vue | 5 +---- src/layouts/tpa-search/tpa-search.spec.js | 12 +++++++---- src/layouts/tpa-search/tpa-search.vue | 5 +---- src/layouts/tpa-submit/tpa-submit.vue | 7 +------ src/layouts/vehicle-damage/vehicle-damage.vue | 15 +------------ .../vehicle-lookup/vehicle-lookup.spec.js | 21 ++++++++++++------- src/layouts/vehicle-lookup/vehicle-lookup.vue | 8 +------ .../vehicle-parts/vehicle-parts.spec.js | 12 +++++------ src/layouts/vehicle-parts/vehicle-parts.vue | 2 +- .../vehicle-selection/vehicle-selection.vue | 5 +---- src/layouts/vin-lookup/vin-lookup.spec.js | 9 +++++--- src/layouts/vin-lookup/vin-lookup.vue | 8 +------ src/mixins/base-mixin.js | 5 +++++ src/mixins/vehicle-questions-mixin.js | 4 ++-- src/mixins/vehicle-questions-mixin.spec.js | 8 +++---- src/router/index.js | 14 ++++++++++++- 42 files changed, 138 insertions(+), 183 deletions(-) diff --git a/src/layouts/address-lookup/address-lookup.spec.js b/src/layouts/address-lookup/address-lookup.spec.js index ddc65015..6bf15d2e 100644 --- a/src/layouts/address-lookup/address-lookup.spec.js +++ b/src/layouts/address-lookup/address-lookup.spec.js @@ -2,6 +2,7 @@ import addressLookup from '@/layouts/address-lookup/address-lookup.vue'; // Supporting Files +import baseMixin from '@/mixins/base-mixin'; import settleAllPromises from '@/helpers/layout-helper.js'; import { shallowMount } from '@vue/test-utils'; import { getMountOptions } from '@/helpers/unit-test-helper.js'; @@ -84,6 +85,8 @@ function setupMocks({ wrapper.vm.getCmsContent = jest.fn().mockImplementation(() => ''); wrapper.vm.setCmsContent = jest.fn(); + wrapper.vm.$router.navigateWithSpinner = jest.fn(); + wrapper.vm.navigateBack = baseMixin.methods.navigateBack; wrapper.vm.$refs.siteFooter.updateButtonText = jest.fn(); wrapper.vm.$refs.siteFooter.removeLoader = jest.fn(); wrapper.vm.$refs.siteFooter.disableForwardButton = jest.fn(); @@ -164,7 +167,8 @@ describe('address-lookup.vue', () => { }); // eslint-disable-next-line max-len - test('if the looking up VIN by address is not allowed in the state selected display the Vin Lookup By HomeAddress Not Allowed Alert', + test( + 'if the looking up VIN by address is not allowed in the state selected display the Vin Lookup By HomeAddress Not Allowed Alert', async () => { // Arrange const mockRegistrationAddress = { @@ -208,7 +212,8 @@ describe('address-lookup.vue', () => { // Assert expect(wrapper.findComponent({ ref: 'alertVinLookupsByHomeAddressNotAllowed' }).isVisible()).toBe(true); - }); + } + ); test('if no vehicles found, display Vin Not Found alert', async () => { // Arrange @@ -251,10 +256,10 @@ describe('address-lookup.vue', () => { }); // Act - await wrapper.vm.backButtonAction(); + await wrapper.vm.navigateBack(); // Assert - expect(wrapper.vm.$router.navigate).toHaveBeenCalled(); + expect(wrapper.vm.$router.navigateWithSpinner).toHaveBeenCalled(); }); test('if the car entered matches one of the vehicles found navigate forward', async () => { @@ -358,7 +363,8 @@ describe('address-lookup.vue', () => { }); // eslint-disable-next-line max-len - test('if a different vehicle is found than the one entered and the selected glass is not available for that vehicle, navigate back to vehicle-damage page', + test( + 'if a different vehicle is found than the one entered and the selected glass is not available for that vehicle, navigate back to vehicle-damage page', async () => { // Arrange const mockRegistrationAddress = { diff --git a/src/layouts/address-lookup/address-lookup.vue b/src/layouts/address-lookup/address-lookup.vue index 9f86be4e..f040fc93 100644 --- a/src/layouts/address-lookup/address-lookup.vue +++ b/src/layouts/address-lookup/address-lookup.vue @@ -62,7 +62,7 @@ :isDisabled="!meta.valid" :isForwardActionDisabled="!meta.valid" @ForwardClicked="forwardButtonAction" - @backClicked="backButtonAction" /> + @backClicked="navigateBack" /> @@ -205,11 +205,6 @@ export default { arePagePrerequisitesValid() { return useMainStore().order.vehicle.carId !== null; }, - - backButtonAction() { - // route to move backwards - this.$router.navigate(this.navigationScenarios.CLICKED_BACK, this.$route); - }, attachCustomEvents() { this.prependActionToMethod(this, this.forwardButtonAction, () => { this.pushEventToGA( diff --git a/src/layouts/address-vehicles/address-vehicles.spec.js b/src/layouts/address-vehicles/address-vehicles.spec.js index caab2ae3..14d97555 100644 --- a/src/layouts/address-vehicles/address-vehicles.spec.js +++ b/src/layouts/address-vehicles/address-vehicles.spec.js @@ -1,4 +1,5 @@ import addressVehicles from '@/layouts/address-vehicles/address-vehicles.vue'; +import baseMixin from '@/mixins/base-mixin'; import settleAllPromises from '@/helpers/layout-helper.js'; import { shallowMount } from '@vue/test-utils'; import { getMountOptions } from '@/helpers/unit-test-helper.js'; @@ -115,6 +116,8 @@ function setupMocks({ wrapper.vm.getCmsContent = jest.fn().mockImplementation(() => ''); wrapper.vm.setCmsContent = jest.fn(); + wrapper.vm.$router.navigateWithSpinner = jest.fn(); + wrapper.vm.navigateBack = baseMixin.methods.navigateBack; wrapper.vm.$refs.siteFooter.updateButtonText = jest.fn(); wrapper.vm.$refs.siteFooter.removeLoader = jest.fn(); @@ -127,10 +130,10 @@ describe('address-vehicles.vue', () => { const { wrapper } = setupMocks({}); // Act - await wrapper.vm.backButtonAction(); + await wrapper.vm.navigateBack(); // Assert - expect(wrapper.vm.$router.navigate).toBeCalled(); + expect(wrapper.vm.$router.navigateWithSpinner).toBeCalled(); }); test('navigateForward should be called if forwardButtonAction is run', async () => { @@ -190,7 +193,8 @@ describe('address-vehicles.vue', () => { }); // eslint-disable-next-line max-len - test('Should navigate to CLICKED_FORWARD scenario if carId is different and selected glass not available for vehicle on navigateForward', + test( + 'Should navigate to CLICKED_FORWARD scenario if carId is different and selected glass not available for vehicle on navigateForward', async () => { // Arrange const { wrapper } = setupMocks({}); diff --git a/src/layouts/address-vehicles/address-vehicles.vue b/src/layouts/address-vehicles/address-vehicles.vue index 4494d938..142eee57 100644 --- a/src/layouts/address-vehicles/address-vehicles.vue +++ b/src/layouts/address-vehicles/address-vehicles.vue @@ -56,7 +56,7 @@ ref="siteFooter" cmsWidgetName="SiteFooterWidget" :isForwardActionDisabled="!meta.valid" - @backClicked="backButtonAction" + @backClicked="navigateBack" @forwardClicked="forwardButtonAction" /> @@ -231,9 +231,6 @@ export default { } return false; }, - backButtonAction() { - this.$router.navigate(this.navigationScenarios.CLICKED_BACK, this.$route); - }, async forwardButtonAction() { const vinLookup = await useMainStore() .lookupVehicleByVin(this.selectedVehicle.vin) diff --git a/src/layouts/capability-questions/capability-questions.vue b/src/layouts/capability-questions/capability-questions.vue index 09bfe96c..bfa557f0 100644 --- a/src/layouts/capability-questions/capability-questions.vue +++ b/src/layouts/capability-questions/capability-questions.vue @@ -15,7 +15,7 @@ :validationRules="rules.optionRequired" :index="currentGlassIndex" @forwardButtonAction="forwardButtonAction" - @backClick="navigateBack" /> + @backClick="navigateBackByVehicleQuestions" />