import Vuex from 'vuex' import { mount, createLocalVue, createWrapper } from '@vue/test-utils' import InstanceExport from '@/components/export/InstanceExport.vue' import sinon from 'sinon' import chai from 'chai' import VueRouter from 'vue-router' import testUtils from '@/../tests/utils/testUtils' import * as api from '@/api' chai.should() let localVue = createLocalVue() localVue.use(Vuex) localVue.use(VueRouter) let router = new VueRouter() // @ts-ignore global.requestAnimationFrame = cb => cb() describe('InstanceExport Component Unit Tests', () => { let store: any = null let consoleTemp = { warn: console.warn, error: console.error } before(function () { console.warn = function () {} console.error = function () {} }) after(function () { console.warn = consoleTemp.warn console.error = consoleTemp.error }) beforeEach(() => { store = new Vuex.Store({ state: {} }) }) afterEach(() => { sinon.restore() }) it('should correctly apply the student-map file', () => { let wrp = mount(InstanceExport, { localVue: localVue, store }) let mapStub = sinon.stub().returns(testUtils.studentMap) let spy = sinon.spy() // @ts-ignore sinon.replaceGetter(wrp.vm, 'studentMap', mapStub) // @ts-ignore sinon.replaceGetter(wrp.vm, 'mapFileLoaded', sinon.stub().returns(true)) // @ts-ignore sinon.replace(wrp.vm, 'optionalConvertAndCreatePopup', spy) // @ts-ignore wrp.vm.getMappedExportFile(testUtils.instanceExportsObfuscated) spy.firstCall.args[0].students[0].matrikelNo.should.equal(testUtils.studentMap['username'].matrikelNo) }) })