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

139 lines
3.7 KiB
JavaScript

import {expect, describe, test, beforeEach, vi} from 'vitest'
import {mount} from '@vue/test-utils'
import ServiceOfPacks from "@services/ServiceOfPacks.js"
import {resPacks, ApiOfPacks} from "@mocks/packs.js"
import LastPacks from "@organisms/LastPacks/LastPacks.vue"
import tableConfig from '@organisms/LastPacks/helpers/tableConfig'
import { createStore } from "vuex"
import { store as packs } from '@/store/modules/packs'
describe('test LastPacks', () => {
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 LastPacks', async () => {
const wrapper = mount(LastPacks, {
props: {
serviceOfPacks,
},
global: {
mocks: {
$store: store
},
data() {
const paramsFields = {
dateFormat: 'DD.MM.YYYY HH:mm',
dtStart: serviceOfPacks.getDefaultDates(this.dateFormat).dtStart,
dtFinish: serviceOfPacks.getDefaultDates(this.dateFormat).dtFinish,
imei: ''
}
return {
config: tableConfig,
paramsFields,
pageState: "await", // await | loading | isLoaded | error
errorImei: null,
}
},
}
})
expect(wrapper.exists()).toBe(true)
})
test('Get last packs in LastPacks component', async () => {
const wrapper = mount(LastPacks, {
shallow: true,
props: {
serviceOfPacks,
},
global: {
mocks: {
$store: store
},
data() {
const paramsFields = {
dateFormat: 'DD.MM.YYYY HH:mm',
dtStart: serviceOfPacks.getDefaultDates(this.dateFormat).dtStart,
dtFinish: serviceOfPacks.getDefaultDates(this.dateFormat).dtFinish,
imei: ''
}
return {
config: tableConfig,
paramsFields,
pageState: "await", // await | loading | isLoaded | error
errorImei: null,
}
},
}
})
await wrapper.setData({paramsFields: {imei: '868136035512212'}})
await wrapper.vm.getPacks()
const lastPacks = store.getters['packs/lastPacks']
expect(lastPacks).toEqual(resPacks)
})
test('Edit fields in LastPacks component', async () => {
const wrapper = mount(LastPacks, {
shallow: true,
props: {
serviceOfPacks,
},
global: {
mocks: {
$store: store
},
data() {
const paramsFields = {
dateFormat: 'DD.MM.YYYY HH:mm',
dtStart: serviceOfPacks.getDefaultDates(this.dateFormat).dtStart,
dtFinish: serviceOfPacks.getDefaultDates(this.dateFormat).dtFinish,
imei: ''
}
return {
config: tableConfig,
paramsFields,
pageState: "await", // await | loading | isLoaded | error
errorImei: null,
}
},
}
})
await wrapper.vm.editFields({key: 'imei', value: '868136035512212'})
await wrapper.vm.editFields({key: 'dtStart', value: '2024-03-05'})
await wrapper.vm.editFields({key: 'dtFinish', value: '2024-04-05'})
expect(wrapper.vm.paramsFields).toEqual({dateFormat: 'DD.MM.YYYY HH:mm', imei: '868136035512212', dtStart: '2024-03-05', dtFinish: '2024-04-05'})
})
})