salix-front/test/vitest/__tests__/components/common/CrudModel.spec.js

64 lines
1.8 KiB
JavaScript
Raw Normal View History

import { createWrapper, axios } from 'app/test/vitest/helper';
2023-08-17 13:32:56 +00:00
import CrudModel from 'components/CrudModel.vue';
import { vi, afterEach, beforeAll, describe, expect, it } from 'vitest';
2023-08-17 13:32:56 +00:00
describe.only('CrudModel', () => {
let vm;
beforeAll(() => {
vm = createWrapper(CrudModel, {
global: {
stubs: [
'vnPaginate',
'useState',
'arrayData',
'useStateStore',
'vue-i18n',
],
mocks: {
fetch: vi.fn(),
validate: vi.fn(),
},
2023-08-17 13:32:56 +00:00
},
propsData: {
dataRequired: {
id: 1,
name: 'name',
autoLoad: true,
},
dataKey: 'crudModelKey',
model: 'crudModel',
url: 'crudModelUrl',
},
attrs: {
url: 'crudModelUrl',
dataKey: 'CustomerList',
order: 'id DESC',
limit: 3,
2023-08-17 13:32:56 +00:00
},
}).vm;
});
afterEach(() => {
vi.clearAllMocks();
});
describe('insert()', () => {
it('should new element in list with index 0 if formData not has data', () => {
vi.spyOn(axios, 'get').mockResolvedValue({
data: [
{ id: 1, name: 'Tony Stark' },
{ id: 2, name: 'Jessica Jones' },
{ id: 3, name: 'Bruce Wayne' },
],
});
vm.state.set('crudModel', []);
2023-08-17 13:32:56 +00:00
vm.insert();
expect(vm.formData.length).toEqual(1);
expect(vm.formData[0].id).toEqual(1);
expect(vm.formData[0].$index).toEqual(0);
2023-08-17 13:32:56 +00:00
});
});
});