import { createWrapper } from 'app/test/vitest/helper'; import VnLocation from 'components/common/VnLocation.vue'; import { vi, afterEach, expect, it, beforeEach, describe } from 'vitest'; function buildComponent(data) { return createWrapper(VnLocation, { global: { props: { location: data, }, }, }).vm; } afterEach(() => { vi.clearAllMocks(); }); describe('formatLocation', () => { let locationBase; beforeEach(() => { locationBase = { postcode: '46680', city: 'Algemesi', province: { name: 'Valencia' }, country: { name: 'Spain' }, }; }); it('should return the postcode, city, province and country', () => { const location = { ...locationBase }; const vm = buildComponent(location); expect(vm.formatLocation(location)).toEqual('46680, Algemesi(Valencia), Spain'); }); it('should return the postcode and country', () => { const location = { ...locationBase, city: undefined }; const vm = buildComponent(location); expect(vm.formatLocation(location)).toEqual('46680, Spain'); }); it('should return the city, province and country', () => { const location = { ...locationBase, postcode: undefined }; const vm = buildComponent(location); expect(vm.formatLocation(location)).toEqual('Algemesi(Valencia), Spain'); }); it('should return the country', () => { const location = { ...locationBase, postcode: undefined, city: undefined, province: undefined, }; const vm = buildComponent(location); expect(vm.formatLocation(location)).toEqual('Spain'); }); }); describe('showLabel', () => { let locationBase; beforeEach(() => { locationBase = { code: '46680', town: 'Algemesi', province: 'Valencia', country: 'Spain', }; }); it('should show the label with postcode, city, province and country', () => { const location = { ...locationBase }; const vm = buildComponent(location); expect(vm.showLabel(location)).toEqual('46680, Algemesi(Valencia), Spain'); }); it('should show the label with postcode and country', () => { const location = { ...locationBase, town: undefined }; const vm = buildComponent(location); expect(vm.showLabel(location)).toEqual('46680, Spain'); }); it('should show the label with city, province and country', () => { const location = { ...locationBase, code: undefined }; const vm = buildComponent(location); expect(vm.showLabel(location)).toEqual('Algemesi(Valencia), Spain'); }); it('should show the label with country', () => { const location = { ...locationBase, code: undefined, town: undefined, province: undefined, }; const vm = buildComponent(location); expect(vm.showLabel(location)).toEqual('Spain'); }); });