feat: refs #7087 added more test cases

This commit is contained in:
PAU ROVIRA ROSALENY 2025-01-13 08:11:41 +01:00
parent bb6fae5d08
commit 1295f394f3
1 changed files with 40 additions and 25 deletions

View File

@ -1,48 +1,63 @@
import { vi, describe, expect, it, beforeAll, afterEach } from 'vitest';
import { vi, describe, expect, it, beforeAll, afterEach, beforeEach } from 'vitest';
import { createWrapper, axios } from 'app/test/vitest/helper';
import CardSummary from 'src/components/ui/CardSummary.vue';
describe('CardSummary', () => {
let vm;
let wrapper;
beforeAll(() => {
const mockApiResponse = {
data: {
data: [],
total: 0,
}
};
vi.spyOn(axios, 'get').mockResolvedValue(mockApiResponse);
vi.spyOn(axios, 'get').mockResolvedValue({ data: [] });
});
beforeEach(() => {
wrapper = createWrapper(CardSummary, {
global: {
stubs: [
'arrayData',
'useArrayData',
],
mocks: {
validate: vi.fn(),
},
},
propsData: {
dataKey: 'cardSummaryKey',
url: 'cardSummaryUrl',
filter: 'cardFilter',
},
});
vm = wrapper.vm;
wrapper = wrapper.wrapper;
});
afterEach(() => {
vi.clearAllMocks();
});
it('should fetch data', async () => {
expect(wrapper.emitted('fetch'));
it('should fetch data correctly', async () => {
const fetchSpy = vi
.spyOn(vm.arrayData, 'fetch')
.mockResolvedValue({ data: [{ id: 1, name: 'Test Entity' }] });
await vm.fetch();
expect(fetchSpy).toHaveBeenCalledWith({ append: false, updateRouter: false });
expect(wrapper.emitted('onFetch')).toBeTruthy();
expect(vm.isLoading).toBe(false);
});
it('should set correct props to the store', () => {
expect(vm.store.url).toEqual('cardSummaryUrl');
expect(vm.store.filter).toEqual('cardFilter');
});
it('should compute entity correctly from store data', () => {
vm.store.data = [{ id: 1, name: 'Entity 1' }];
expect(vm.entity).toEqual({ id: 1, name: 'Entity 1' });
});
it('should handle empty data gracefully', () => {
vm.store.data = [];
expect(vm.entity).toBeUndefined();
});
it('should respond to prop changes and refetch data', async () => {
const fetchSpy = vi.spyOn(vm.arrayData, 'fetch');
await wrapper.setProps({ url: 'newUrl', filter: { key: 'newValue' } });
expect(fetchSpy).toHaveBeenCalled();
expect(vm.store.url).toBe('newUrl');
expect(vm.store.filter).toEqual({ key: 'newValue' });
});
});