diff --git a/src/layouts/tpa-search/tpa-search.spec.js b/src/layouts/tpa-search/tpa-search.spec.js index 065560fe..9c7ce0ed 100644 --- a/src/layouts/tpa-search/tpa-search.spec.js +++ b/src/layouts/tpa-search/tpa-search.spec.js @@ -840,6 +840,108 @@ describe('TPA search page', () => { expect(wrapper.vm.selectedProviderNumber).toBe(''); }); }); + describe.only('selectedProviderNumber', () => { + describe('does not call updateServiceLocation when', () => { + test('providers list is null ', () => { + // Arrange + const { wrapper } = getMountedComponent({}, { + providers: null + }); + const newProviderNumber = 11235; + + // Act + wrapper.vm.$options.watch.selectedProviderNumber.call(wrapper.vm, newProviderNumber); + + // Assert + expect(wrapper.vm.mainStore.updateServiceLocation).not.toHaveBeenCalled(); + }); + test('providers list is empty ', () => { + // Arrange + const { wrapper } = getMountedComponent({}, { + providers: [] + }); + const newProviderNumber = 11235; + + // Act + wrapper.vm.$options.watch.selectedProviderNumber.call(wrapper.vm, newProviderNumber); + + // Assert + expect(wrapper.vm.mainStore.updateServiceLocation).not.toHaveBeenCalled(); + }); + test('providers list does not contain match for provider number ', () => { + // Arrange + const { wrapper } = getMountedComponent({}, { + providers: [{ + providerNumber: 8374, + address: { + streetAddress: '143 Average Lane', + city: 'Cambridge', + state: 'OH', + zipCode: '72983', + zipCodeCtu: '0390' + }, + companyName: "Sally's Auto", + phoneNumber: '1234567890' + }] + }); + const newProviderNumber = 11235; + + // Act + wrapper.vm.$options.watch.selectedProviderNumber.call(wrapper.vm, newProviderNumber); + + // Assert + expect(wrapper.vm.mainStore.updateServiceLocation).not.toHaveBeenCalled(); + }); + }); + test('Calls updateServiceLocation when matching provider found.', () => { + // Arrange + const newProviderNumber = 11235; + const streetAddress = '143 Average Lane'; + const city = 'Berlin'; + const state = 'MA'; + const zipCode = '12345'; + const zipCodeCtu = '0004'; + const companyName = "Sally's Auto"; + const phoneNumber = '3298479879'; + const provider = { + providerNumber: newProviderNumber, + address: { + streetAddress, + city, + state, + zipCode, + zipCodeCtu + }, + companyName, + phoneNumber + }; + const { wrapper } = getMountedComponent({}, { + providers: [ + provider, + { providerNumber: 328949832 } + ] + }); + + // Act + wrapper.vm.$options.watch.selectedProviderNumber.call(wrapper.vm, newProviderNumber); + + // Assert + expect(wrapper.vm.mainStore.updateServiceLocation).toHaveBeenCalledWith({ + provider: { + providerNumber: newProviderNumber, + address: { + streetAddress, + city, + state, + zipCode, + zipCodeCtu + }, + companyName, + phoneNumber + } + }); + }); + }); }); describe('method', () => { test.each([