diff --git a/karma.conf.cjs b/karma.conf.cjs index f35e7a4..3a8b256 100644 --- a/karma.conf.cjs +++ b/karma.conf.cjs @@ -7,6 +7,9 @@ module.exports = function (config) { 'vue': 'vue/dist/vue.esm-bundler.js' } }, + server: { + preTransformRequests: false + } }, coverage: { enable: true, diff --git a/tests/views/Main/Workspace/Tabs/Tab/DataView/Chart/Chart.spec.js b/tests/views/Main/Workspace/Tabs/Tab/DataView/Chart/Chart.spec.js index 4183d46..45b1405 100644 --- a/tests/views/Main/Workspace/Tabs/Tab/DataView/Chart/Chart.spec.js +++ b/tests/views/Main/Workspace/Tabs/Tab/DataView/Chart/Chart.spec.js @@ -8,13 +8,19 @@ import fIo from '@/lib/utils/fileIo' import { nextTick } from 'vue' describe('Chart.vue', () => { + const $store = { state: { isWorkspaceVisible: true } } + afterEach(() => { sinon.restore() }) it('getOptionsForSave called with proper arguments', () => { // mount the component - const wrapper = shallowMount(Chart) + const wrapper = shallowMount(Chart, { + global: { + mocks: { $store } + } + }) const vm = wrapper.vm const stub = sinon.stub(chartHelper, 'getOptionsForSave').returns('result') const chartData = vm.getOptionsForSave() @@ -25,7 +31,11 @@ describe('Chart.vue', () => { it('emits update when plotly updates', async () => { // mount the component - const wrapper = mount(Chart) + const wrapper = mount(Chart, { + global: { + mocks: { $store } + } + }) wrapper.findComponent({ ref: 'plotlyEditor' }).vm.$emit('update') expect(wrapper.emitted('update')).to.have.lengthOf(1) wrapper.unmount() @@ -40,7 +50,10 @@ describe('Chart.vue', () => { // mount the component const wrapper = shallowMount(Chart, { - props: { dataSources } + props: { dataSources }, + global: { + mocks: { $store } + } }) const newDataSources = { @@ -62,7 +75,10 @@ describe('Chart.vue', () => { // mount the component const wrapper = shallowMount(Chart, { - props: { dataSources } + props: { dataSources }, + global: { + mocks: { $store } + } }) await wrapper.setProps({ dataSources: null }) @@ -78,7 +94,10 @@ describe('Chart.vue', () => { } const wrapper = mount(Chart, { - props: { dataSources } + props: { dataSources }, + global: { + mocks: { $store } + } }) sinon.spy(wrapper.vm, 'prepareCopy') diff --git a/tests/views/Main/Workspace/Tabs/Tab/DataView/DataView.spec.js b/tests/views/Main/Workspace/Tabs/Tab/DataView/DataView.spec.js index fe8fac8..10c1bcf 100644 --- a/tests/views/Main/Workspace/Tabs/Tab/DataView/DataView.spec.js +++ b/tests/views/Main/Workspace/Tabs/Tab/DataView/DataView.spec.js @@ -5,12 +5,18 @@ import sinon from 'sinon' import { nextTick } from 'vue' describe('DataView.vue', () => { + const $store = { state: { isWorkspaceVisible: true } } + afterEach(() => { sinon.restore() }) it('emits update on mode changing', async () => { - const wrapper = mount(DataView) + const wrapper = mount(DataView, { + global: { + stubs: { 'chart': true } + } + }) const pivotBtn = wrapper.findComponent({ ref: 'pivotBtn' }) await pivotBtn.trigger('click') @@ -20,7 +26,11 @@ describe('DataView.vue', () => { }) it('method getOptionsForSave calls the same method of the current view component', async () => { - const wrapper = mount(DataView) + const wrapper = mount(DataView, { + global: { + mocks: { $store } + } + }) const chart = wrapper.findComponent({ name: 'Chart' }).vm sinon.stub(chart, 'getOptionsForSave').returns({ here_are: 'chart_settings' }) @@ -38,7 +48,11 @@ describe('DataView.vue', () => { }) it('method saveAsSvg calls the same method of the current view component', async () => { - const wrapper = mount(DataView) + const wrapper = mount(DataView, { + global: { + mocks: { $store } + } + }) // Find chart and spy the method const chart = wrapper.findComponent({ name: 'Chart' }).vm @@ -68,7 +82,11 @@ describe('DataView.vue', () => { }) it('method saveAsHtml calls the same method of the current view component', async () => { - const wrapper = mount(DataView) + const wrapper = mount(DataView, { + global: { + mocks: { $store } + } + }) // Find chart and spy the method const chart = wrapper.findComponent({ name: 'Chart' }).vm @@ -97,7 +115,11 @@ describe('DataView.vue', () => { const ClipboardItem = window.ClipboardItem delete window.ClipboardItem sinon.spy(window, 'alert') - const wrapper = mount(DataView) + const wrapper = mount(DataView, { + global: { + stubs: { 'chart': true } + } + }) const copyBtn = wrapper.findComponent({ ref: 'copyToClipboardBtn' }) await copyBtn.trigger('click') @@ -120,7 +142,8 @@ describe('DataView.vue', () => { const wrapper = mount(DataView, { attachTo: document.body, global: { - stubs: { teleport: true, transition: false } + stubs: { teleport: true, transition: false }, + mocks: { $store } } }) sinon.stub(wrapper.vm.$refs.viewComponent, 'prepareCopy').callsFake(async () => { @@ -165,7 +188,13 @@ describe('DataView.vue', () => { it('copy to clipboard less than 1 sec', async () => { sinon.stub(window.navigator.clipboard, 'write').resolves() const clock = sinon.useFakeTimers() - const wrapper = mount(DataView) + const wrapper = mount(DataView, { + attachTo: document.body, + global: { + stubs: { teleport: true, transition: false }, + mocks: { $store } + } + }) sinon.spy(wrapper.vm, 'copyToClipboard') sinon.stub(wrapper.vm.$refs.viewComponent, 'prepareCopy').callsFake(async () => { await clock.tick(500) @@ -182,7 +211,8 @@ describe('DataView.vue', () => { await nextTick() // The dialog is not shown... - expect(wrapper.find('[data-modal="prepareCopy"]').exists()).to.equal(false) + await clock.tick(100) + expect(wrapper.find('.dialog.vfm').exists()).to.equal(false) // copyToClipboard is called expect(wrapper.vm.copyToClipboard.calledOnce).to.equal(true) wrapper.unmount() @@ -194,7 +224,8 @@ describe('DataView.vue', () => { const wrapper = mount(DataView, { attachTo: document.body, global: { - stubs: { teleport: true, transition: false } + stubs: { teleport: true, transition: false }, + mocks: { $store } } }) sinon.spy(wrapper.vm, 'copyToClipboard') diff --git a/tests/views/Main/Workspace/Tabs/Tab/DataView/Pivot/Pivot.spec.js b/tests/views/Main/Workspace/Tabs/Tab/DataView/Pivot/Pivot.spec.js index 5020bc3..2e238d6 100644 --- a/tests/views/Main/Workspace/Tabs/Tab/DataView/Pivot/Pivot.spec.js +++ b/tests/views/Main/Workspace/Tabs/Tab/DataView/Pivot/Pivot.spec.js @@ -9,6 +9,7 @@ import pivotHelper from '@/views/Main/Workspace/Tabs/Tab/DataView/Pivot/pivotHel describe('Pivot.vue', () => { let container + const $store = { state: { isWorkspaceVisible: true } } beforeEach(() => { container = document.createElement('div') @@ -36,6 +37,9 @@ describe('Pivot.vue', () => { vals: [], rendererName: 'Table' } + }, + global: { + stubs: { 'chart': true } } }) const colLabels = wrapper.findAll('.pivot-output thead th.pvtColLabel') @@ -71,6 +75,9 @@ describe('Pivot.vue', () => { vals: [], rendererName: 'Table' } + }, + global: { + stubs: { 'chart': true } } }) @@ -120,6 +127,9 @@ describe('Pivot.vue', () => { vals: [], rendererName: 'Table' } + }, + global: { + mocks: { $store } } }) @@ -190,7 +200,10 @@ describe('Pivot.vue', () => { rendererName: 'Table' } }, - attachTo: container + attachTo: container, + global: { + mocks: { $store } + } }) expect(await wrapper.vm.prepareCopy()).to.be.instanceof(HTMLCanvasElement) @@ -252,7 +265,10 @@ describe('Pivot.vue', () => { } } }, - attachTo: container + attachTo: container, + global: { + mocks: { $store } + } }) const chartComponent = wrapper.findComponent({ref: "customChart"}).vm @@ -287,7 +303,10 @@ describe('Pivot.vue', () => { } } }, - attachTo: container + attachTo: container, + global: { + mocks: { $store } + } }) const chartComponent = wrapper.findComponent({ref: "customChart"}).vm @@ -322,7 +341,10 @@ describe('Pivot.vue', () => { } } }, - attachTo: container + attachTo: container, + global: { + mocks: { $store } + } }) const chartComponent = wrapper.findComponent({ref: "customChart"}).vm @@ -352,7 +374,10 @@ describe('Pivot.vue', () => { rendererName: 'Bar Chart' } }, - attachTo: container + attachTo: container, + global: { + stubs: { 'chart': true } + } }) await wrapper.vm.saveAsSvg() @@ -380,7 +405,10 @@ describe('Pivot.vue', () => { rendererName: 'Bar Chart' } }, - attachTo: container + attachTo: container, + global: { + stubs: { 'chart': true } + } }) await wrapper.vm.saveAsHtml() @@ -410,7 +438,10 @@ describe('Pivot.vue', () => { rendererName: 'Table' } }, - attachTo: container + attachTo: container, + global: { + stubs: { 'chart': true } + } }) await wrapper.vm.saveAsHtml() @@ -440,7 +471,10 @@ describe('Pivot.vue', () => { rendererName: 'Bar Chart' } }, - attachTo: container + attachTo: container, + global: { + stubs: { 'chart': true } + } }) await wrapper.vm.saveAsPng() @@ -472,7 +506,10 @@ describe('Pivot.vue', () => { rendererName: 'Table' } }, - attachTo: container + attachTo: container, + global: { + stubs: { 'chart': true } + } }) await wrapper.vm.saveAsPng()