feat: refs #7055 created FilterItemForm test
gitea/salix-front/pipeline/pr-dev Build queued... Details

This commit is contained in:
PAU ROVIRA ROSALENY 2025-01-08 13:02:08 +01:00
parent e7a0c826c7
commit 5dc14b8dc1
1 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,71 @@
import { createWrapper, axios } from 'app/test/vitest/helper';
import FilterItemForm from 'components/FilterItemForm.vue';
import { vi, afterEach, beforeAll, describe, expect, it } from 'vitest';
describe('FilterItemForm', () => {
let vm;
let wrapper;
beforeAll(() => {
wrapper = createWrapper(FilterItemForm, {
props: {
url: 'Items/withName',
},
});
vm = wrapper.vm;
wrapper = wrapper.wrapper;
vi.spyOn(axios, 'get').mockResolvedValue({ data: [] });
});
it('should set up itemFilter and itemFilterParams correctly', async () => {
wrapper.setProps({
itemFilter: {
include: [
{ relation: 'producer', scope: { fields: ['name'] } },
{ relation: 'ink', scope: { fields: ['name'] } },
],
where: { name: { like: '%bolas de madera%' } },
},
itemFilterParams: { name: 'bolas de madera' },
});
await vm.onSubmit();
const expectedFilter = {
include: [
{ relation: 'producer', scope: { fields: ['name'] } },
{ relation: 'ink', scope: { fields: ['name'] } },
],
where: {
name: { like: '%bolas de madera%' },
size: 'large',
producerFk: 1,
typeFk: 2,
inkFk: 3,
},
};
expect(axios.get).toHaveBeenCalledWith('Items/withName', {
params: { filter: JSON.stringify(expectedFilter) },
});
});
it('should handle an empty itemFilterParams correctly', async () => {
vm.itemFilterParams = {};
await vm.onSubmit();
const expectedFilter = {
include: [
{ relation: 'producer', scope: { fields: ['name'] } },
{ relation: 'ink', scope: { fields: ['name'] } },
],
where: {},
};
expect(axios.get).toHaveBeenCalledWith('Items/withName', {
params: { filter: JSON.stringify(expectedFilter) },
});
});
});