83 lines
2.7 KiB
JavaScript
83 lines
2.7 KiB
JavaScript
import ProviderPreference from '@/layouts/provider-preference/provider-preference.vue';
|
|
|
|
import { shallowMount } from '@vue/test-utils';
|
|
import settleAllPromises from '@/helpers/layout-helper.js';
|
|
import { fetchCmsContentForPage } from '@/helpers/cms-content-helper';
|
|
import { getMountOptions } from '@/helpers/unit-test-helper.js';
|
|
import { useMainStore } from '@/store';
|
|
import navigationScenarios from '@/router/router-constants/navigation-scenarios';
|
|
|
|
// Mock our module for promises.
|
|
jest.mock('@/helpers/layout-helper.js', () => jest.fn());
|
|
|
|
// Mock fetchCmsContentForPage
|
|
jest.mock('@/helpers/cms-content-helper', () => ({
|
|
fetchCmsContentForPage: jest.fn(),
|
|
setupModalLinks: jest.fn()
|
|
}));
|
|
|
|
/** @ignore */
|
|
function setupMocks(mockApiResponses) {
|
|
const mountOptions = getMountOptions({
|
|
router: {
|
|
navigate: jest.fn()
|
|
},
|
|
route: 'provider-preference'
|
|
});
|
|
|
|
const wrapper = shallowMount(
|
|
ProviderPreference,
|
|
mountOptions
|
|
);
|
|
|
|
useMainStore().getCoveragePolicyInfo = jest.fn().mockImplementation(() => Promise.resolve({
|
|
data: {}
|
|
}));
|
|
|
|
const apiResponses = mockApiResponses;
|
|
|
|
settleAllPromises.mockImplementation(() => apiResponses);
|
|
fetchCmsContentForPage.mockImplementation(() => { });
|
|
|
|
return { wrapper };
|
|
}
|
|
|
|
describe('provider-preference.vue', () => {
|
|
test('Should navigate to safelite flow when safelite selected', () => {
|
|
// Arrange
|
|
const { wrapper } = setupMocks();
|
|
|
|
// Act
|
|
wrapper.vm.selectedProvider = 'SafeliteOption';
|
|
wrapper.vm.forwardButtonAction();
|
|
|
|
// Test
|
|
expect(wrapper.vm.$router.navigate).toBeCalledWith(navigationScenarios.CLICKED_FORWARD_WITH_SAFELITE, 'provider-preference');
|
|
});
|
|
|
|
test('Should navigate to tpa flow when TPAOption selected and TPA Flow Enabled', () => {
|
|
// Arrange
|
|
const { wrapper } = setupMocks();
|
|
|
|
// Act
|
|
wrapper.vm.selectedProvider = 'TPAOption';
|
|
useMainStore().issConfig.enableTPAFlow = true;
|
|
wrapper.vm.forwardButtonAction();
|
|
|
|
// Test
|
|
expect(wrapper.vm.$router.navigate).toBeCalledWith(navigationScenarios.CLICKED_FORWARD_WITH_TPA_ENABLED, 'provider-preference');
|
|
});
|
|
|
|
test('Should navigate to tpa disabled route page when TPAOption selected and TPA Flow disabled', () => {
|
|
// Arrange
|
|
const { wrapper } = setupMocks();
|
|
|
|
// Act
|
|
wrapper.vm.selectedProvider = 'TPAOption';
|
|
useMainStore().issConfig.enableTPAFlow = false;
|
|
wrapper.vm.forwardButtonAction();
|
|
|
|
// Test
|
|
expect(wrapper.vm.$router.navigate).toBeCalledWith(navigationScenarios.CLICKED_FORWARD_WITH_TPA_DISABLED, 'provider-preference');
|
|
});
|
|
});
|