import AgentDetails from '../AgentDetails'; import { createLocalVue, shallowMount } from '@vue/test-utils'; import Vuex from 'vuex'; import VueI18n from 'vue-i18n'; import VTooltip from 'v-tooltip'; import i18n from 'dashboard/i18n'; import Thumbnail from 'dashboard/components/widgets/Thumbnail'; import WootButton from 'dashboard/components/ui/WootButton'; const localVue = createLocalVue(); localVue.use(Vuex); localVue.use(VueI18n); localVue.component('thumbnail', Thumbnail); localVue.component('woot-button', WootButton); localVue.component('woot-button', WootButton); localVue.use(VTooltip, { defaultHtml: false, }); const i18nConfig = new VueI18n({ locale: 'en', messages: i18n, }); describe('agentDetails', () => { const currentUser = { name: 'Neymar Junior', avatar_url: '', availability_status: 'online', }; const currentRole = 'agent'; let store = null; let actions = null; let modules = null; let agentDetails = null; beforeEach(() => { actions = {}; modules = { auth: { getters: { getCurrentUser: () => currentUser, getCurrentRole: () => currentRole, getCurrentUserAvailability: () => currentUser.availability_status, }, }, }; store = new Vuex.Store({ actions, modules, }); agentDetails = shallowMount(AgentDetails, { store, localVue, i18n: i18nConfig, }); }); it(' the agent status', () => { expect(agentDetails.find('thumbnail-stub').vm.status).toBe('online'); }); it('agent thumbnail exists', () => { const thumbnailComponent = agentDetails.findComponent(Thumbnail); expect(thumbnailComponent.exists()).toBe(true); }); });