lm-piplines/tests/views/3_organisms/FreePacks.test.js
2024-04-24 11:13:56 +03:00

139 lines
3.8 KiB
JavaScript

import {expect, describe, test, beforeEach, vi} from 'vitest'
import {mount} from '@vue/test-utils'
import ServiceOfPacks from "@services/ServiceOfPacks.js"
import {ApiOfPacks, freePacksParams, resFreePacks} from "@mocks/packs.js"
import FreePacks from "@organisms/FreePacks/FreePacks.vue"
import tableConfig from '@organisms/FreePacks/helpers/tableConfig'
import { createStore } from "vuex"
import { store as packs } from '@/store/modules/packs'
describe('test FreePacks', () => {
const apiOfPacks = new ApiOfPacks()
const store = createStore({
modules: {
packs
}
})
beforeEach(() => {
store.dispatch('packs/resetStore')
})
vi.mock('tabulator-tables', () => {
const mockTabulator = vi.fn().mockImplementation(() => ({
// Mock implementation details
}))
return { TabulatorFull: mockTabulator } // Adjust based on what you're trying to mock
})
const serviceOfPacks = new ServiceOfPacks(apiOfPacks, store)
test('exist of FreePacks', async () => {
const wrapper = mount(FreePacks, {
global: {
mocks: {
$store: store
},
}
})
expect(wrapper.exists()).toBe(true)
})
test('Edit fields in FreePacks component', async () => {
const wrapper = mount(FreePacks, {
shallow: true,
global: {
mocks: {
$store: store
},
props: {
serviceOfPacks,
},
data() {
const paramsFields = {
dateFormat: "DD.MM.YYYY",
dtStart: '',
dtFinish: new Date(),
imei: '',
packNumber: '',
sortBy: 'pack_dt',
countEntries: '10',
sortByOptions: ['pack_dt', 'dt'],
countEntriesOptions: ['10', '500', '2000', '10000', '50000', '100000']
}
return {
config: tableConfig,
paramsFields,
pageState: "await", // await | loading | isLoaded | error
errorImei: null,
errorPackNumber: null,
}
},
}
})
await serviceOfPacks.setPackFields(wrapper.vm.paramsFields, {key: 'imei', value: '868136035512212'})
await serviceOfPacks.setPackFields(wrapper.vm.paramsFields, {key: 'dtStart', value: '2024-03-05'})
await serviceOfPacks.setPackFields(wrapper.vm.paramsFields, {key: 'dtFinish', value: '2024-04-05'})
await serviceOfPacks.setPackFields(wrapper.vm.paramsFields, {key: 'packNumber', value: '333444555'})
await serviceOfPacks.setPackFields(wrapper.vm.paramsFields, {key: 'sortBy', value: 'dt'})
await serviceOfPacks.setPackFields(wrapper.vm.paramsFields, {key: 'countEntries', value: '500'})
expect(wrapper.vm.paramsFields).toEqual({
dateFormat: "DD.MM.YYYY",
imei: '868136035512212',
dtStart: '2024-03-05',
dtFinish: '2024-04-05',
packNumber: '333444555',
sortBy: 'dt',
countEntries: '500',
sortByOptions: ['pack_dt', 'dt'],
countEntriesOptions: ['10', '500', '2000', '10000', '50000', '100000']
})
})
test('Get free packs in FreePacks component', async () => {
const wrapper = mount(FreePacks, {
shallow: true,
global: {
mocks: {
$store: store
},
props: {
serviceOfPacks,
},
data() {
const paramsFields = {
dtStart: '',
dtFinish: '',
imei: ''
}
return {
config: tableConfig,
paramsFields,
pageState: "await", // await | loading | isLoaded | error
errorImei: null,
}
},
}
})
await wrapper.setData({paramsFields: {imei: '868136035512212'}})
await serviceOfPacks.fetchAndSetFreePacks(freePacksParams)
const freePacks = store.getters['packs/freePacks']
expect(freePacks).toEqual(resFreePacks)
})
})