import {describe, expect, test, beforeEach} from "vitest"; import CaseOfUsersInService from '@useCases/CaseOfUsersInService.js' import {createStore} from 'vuex' class ServiceOfUsers { constructor(adapter, store) { this.adapter = adapter this.store = store } } class ServiceOfServices { constructor(adapter, store) { this.adapter = adapter this.store = store } } class AdapterOfUsers { constructor() { } // eslint-disable-next-line no-unused-vars async getUsersListByServiceId(serviceId) { return [{id: 1, name: 'user1'}, {id: 2, name: 'user2'}] } } class AdapterOfServices { constructor() { } } describe('tests for caseOfUsersInService', () => { const store = createStore({ modules: { services: { namespaced: true, state: { services: [], }, mutations: { setServices(state, services) { state.services = services }, }, actions: { resetStore({state}) { state.services = [] }, saveServices({commit}, services) { commit('setServices', services) } }, }, users: { namespaced: true, state: { siteUsersList: [], }, mutations: { setSiteUsersList(state, users) { state.users = users }, }, actions: { resetStore({state}) { state.siteUsersList = [] }, saveUsers({commit}, users) { commit('setSiteUsersList', users) } }, }, }, }) const adapterOfUsers = new AdapterOfUsers() const adapterOfServices = new AdapterOfServices() const serviceOfUsers = new ServiceOfUsers(adapterOfUsers, store) const serviceOfServices = new ServiceOfServices(adapterOfServices, store) beforeEach( async() => { await store.dispatch('services/resetStore') await store.dispatch('users/resetStore') }) test('init', () => { const caseOfUsersInService = new CaseOfUsersInService(serviceOfUsers, serviceOfServices) expect(caseOfUsersInService).toBeDefined() }) // test('selectServiceAndFetchRoutes', async () => { // const caseOfUsersInService = new CaseOfUsersInService(serviceOfUsers, serviceOfServices) // // await caseOfUsersInService.selectServiceAndFetchRoutes(1) // // const selectedService = store.getters['services/selectedService'] // const usersList = store.getters['users/siteUsersList'] // // expect(selectedService).toEqual({id: 1, name: 'service1'}) // expect(usersList).toEqual([{id: 1, name: 'user1'}, {id: 2, name: 'user2'}]) // }) })