diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..5e1957b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - "6" +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/package.json b/package.json index 671ad60..421253f 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "build": "node build/build.js", "unit": "karma start test/unit/karma.conf.js --single-run", "e2e": "node test/e2e/runner.js", - "test": "npm run unit && npm run e2e", - "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs" + "test": "npm run unit", + "lint": "eslint --ext .js,.vue src test/unit/specs" }, "dependencies": { "babel-runtime": "^6.0.0", diff --git a/test/unit/specs/Bar.spec.js b/test/unit/specs/Bar.spec.js new file mode 100644 index 0000000..733f56c --- /dev/null +++ b/test/unit/specs/Bar.spec.js @@ -0,0 +1,17 @@ +import Vue from 'vue' +import BarChart from 'src/examples/BarExample' + +describe('BarChart', () => { + it('should render a canvas', () => { + const vm = new Vue({ + el: 'body', + replace: false, + template: '', + components: { BarChart } + }) + expect(vm.$el.querySelector('#bar-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 + }) +}) diff --git a/test/unit/specs/Bubble.spec.js b/test/unit/specs/Bubble.spec.js new file mode 100644 index 0000000..e68a5c7 --- /dev/null +++ b/test/unit/specs/Bubble.spec.js @@ -0,0 +1,17 @@ +import Vue from 'vue' +import BubbleChart from 'src/examples/BubbleExample' + +describe('BubbleChart', () => { + it('should render a canvas', () => { + const vm = new Vue({ + el: 'body', + replace: false, + template: '', + components: { BubbleChart } + }) + expect(vm.$el.querySelector('#bubble-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 + }) +}) diff --git a/test/unit/specs/Doughnut.spec.js b/test/unit/specs/Doughnut.spec.js new file mode 100644 index 0000000..bd38658 --- /dev/null +++ b/test/unit/specs/Doughnut.spec.js @@ -0,0 +1,17 @@ +import Vue from 'vue' +import DoughnutChart from 'src/examples/DoughnutExample' + +describe('DoughnutChart', () => { + it('should render a canvas', () => { + const vm = new Vue({ + el: 'body', + replace: false, + template: '', + components: { DoughnutChart } + }) + expect(vm.$el.querySelector('#doughnut-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 + }) +}) diff --git a/test/unit/specs/Line.spec.js b/test/unit/specs/Line.spec.js new file mode 100644 index 0000000..fdf9b79 --- /dev/null +++ b/test/unit/specs/Line.spec.js @@ -0,0 +1,17 @@ +import Vue from 'vue' +import LineChart from 'src/examples/LineExample' + +describe('LineChart', () => { + it('should render a canvas', () => { + const vm = new Vue({ + el: 'body', + replace: false, + template: '', + components: { LineChart } + }) + expect(vm.$el.querySelector('#line-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 + }) +}) diff --git a/test/unit/specs/Pie.spec.js b/test/unit/specs/Pie.spec.js new file mode 100644 index 0000000..f99ecbc --- /dev/null +++ b/test/unit/specs/Pie.spec.js @@ -0,0 +1,17 @@ +import Vue from 'vue' +import PieChart from 'src/examples/PieExample' + +describe('PieChart', () => { + it('should render a canvas', () => { + const vm = new Vue({ + el: 'body', + replace: false, + template: '', + components: { PieChart } + }) + expect(vm.$el.querySelector('#pie-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 + }) +}) diff --git a/test/unit/specs/PolarArea.spec.js b/test/unit/specs/PolarArea.spec.js new file mode 100644 index 0000000..25304ce --- /dev/null +++ b/test/unit/specs/PolarArea.spec.js @@ -0,0 +1,17 @@ +import Vue from 'vue' +import PolarChart from 'src/examples/PolarAreaExample' + +describe('PolarChart', () => { + it('should render a canvas', () => { + const vm = new Vue({ + el: 'body', + replace: false, + template: '', + components: { PolarChart } + }) + expect(vm.$el.querySelector('#polar-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 + }) +}) diff --git a/test/unit/specs/Radar.spec.js b/test/unit/specs/Radar.spec.js new file mode 100644 index 0000000..6060c09 --- /dev/null +++ b/test/unit/specs/Radar.spec.js @@ -0,0 +1,17 @@ +import Vue from 'vue' +import RadarChart from 'src/examples/RadarExample' + +describe('RadarChart', () => { + it('should render a canvas', () => { + const vm = new Vue({ + el: 'body', + replace: false, + template: '', + components: { RadarChart } + }) + expect(vm.$el.querySelector('#radar-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 + }) +}) diff --git a/test/unit/specs/helpers/options.spec.js b/test/unit/specs/helpers/options.spec.js new file mode 100644 index 0000000..d05ad75 --- /dev/null +++ b/test/unit/specs/helpers/options.spec.js @@ -0,0 +1,30 @@ +import { mergeOptions } from 'src/helpers/options' + +describe('mergeOptions.js', () => { + const a = { + a: 'a', + b: 'a' + } + + const b = { + a: 'b', + b: 'b' + } + + const c = { + c: 'c' + } + + it('should replace old a and b if a and b are new', () => { + let ab = mergeOptions(a, b) + expect(ab).to.have.property('a').and.to.equal('b') + expect(ab).to.have.property('b').and.to.equal('b') + }) + + it('should add c if c is new', () => { + let ac = mergeOptions(a, c) + expect(ac).to.have.property('a').and.to.equal('a') + expect(ac).to.have.property('b').and.to.equal('a') + expect(ac).to.have.property('c').and.to.equal('c') + }) +})