import Vuex from 'vuex'; import { createLocalVue } from '@vue/test-utils'; import { NotificationState, NotificationObj } from '../types'; import { notify } from '../notify'; const localVue = createLocalVue(); localVue.use(Vuex); const notificationObj: NotificationObj = { type: 'success', message: 'test', icon: 'icon' }; describe('notify', () => { it('adds a notification', () => { const commit = jest.fn(); const state: NotificationState = { notification: null }; notify(commit, state, notificationObj); expect(commit).toHaveBeenCalledWith('ADD', notificationObj); }); it('removes a previous notification and adds a new one', () => { jest.useFakeTimers(); const commit = jest.fn(); const state: NotificationState = { notification: notificationObj }; notify(commit, state, notificationObj); expect(commit).toHaveBeenCalledWith('CLEAR'); jest.runAllTimers(); expect(commit).toHaveBeenCalledWith('ADD', notificationObj); }); });