From 9b8e961d1cebd391c82fe6123b37a7552130929f Mon Sep 17 00:00:00 2001 From: Jakub Juszczak Date: Sun, 2 Jul 2017 16:40:46 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20Add=20test=20for=20scatter=20chart?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/unit/specs/Scatter.spec.js | 64 +++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 test/unit/specs/Scatter.spec.js diff --git a/test/unit/specs/Scatter.spec.js b/test/unit/specs/Scatter.spec.js new file mode 100644 index 00000000..72207b54 --- /dev/null +++ b/test/unit/specs/Scatter.spec.js @@ -0,0 +1,64 @@ +import Vue from 'vue' +import ScatterChart from 'src/examples/ScatterExample' + +describe('ScatterChart', () => { + let el + + beforeEach(() => { + el = document.createElement('div') + }) + + it('should render a canvas', () => { + const vm = new Vue({ + render: function (createElement) { + return createElement( + ScatterChart + ) + }, + components: { ScatterChart } + }).$mount(el) + + expect(vm.$el.querySelector('#scatter-chart')).not.to.be.an('undefined') + expect(vm.$el.querySelector('canvas')).not.to.be.an('undefined') + expect(vm.$el.querySelector('canvas')).not.to.be.an('null') + expect(vm.$el.querySelector('canvas')).to.exist + }) + + it('should change id based on prop', () => { + const vm = new Vue({ + render: function (createElement) { + return createElement( + ScatterChart, { + props: { + chartId: 'linechartprop' + } + } + ) + }, + components: { ScatterChart } + }).$mount(el) + + expect(vm.$el.querySelector('#linechartprop')).not.to.be.an('undefined') + }) + + it('should destroy chart instance', (done) => { + const vm = new Vue({ + render: function (createElement) { + return createElement( + ScatterChart + ) + }, + components: { ScatterChart } + }).$mount(el) + + expect(vm.$children[0]._chart.chart.ctx).not.to.be.null + + vm.$destroy() + + vm.$nextTick(() => { + vm.$forceUpdate() + expect(vm.$children[0]._chart.chart.ctx).to.be.null + done() + }) + }) +})