91 lines
2.9 KiB
JavaScript
91 lines
2.9 KiB
JavaScript
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');
|
|
});
|
|
}); |