From 0cb98686b76c51c8130d48e47e0a5da29c6fa42e Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Tue, 18 Oct 2016 17:28:52 +0800 Subject: [PATCH] VuePopper: add test --- package.json | 2 +- test/unit/specs/util.vue-popper.spec.js | 57 +++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 test/unit/specs/util.vue-popper.spec.js diff --git a/package.json b/package.json index 7a5c49624..c85852d61 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "clean": "rimraf lib && rimraf packages/*/lib", "lint": "eslint src/**/* test/**/* packages/**/*.{js,vue} build/**/* --quiet", "test:watch": "karma start test/unit/karma.conf.js", - "test": "karma start test/unit/karma.conf.js --single-run" + "test": "npm run lint && karma start test/unit/karma.conf.js --single-run" }, "repository": { "type": "git", diff --git a/test/unit/specs/util.vue-popper.spec.js b/test/unit/specs/util.vue-popper.spec.js new file mode 100644 index 000000000..fedf7ad0c --- /dev/null +++ b/test/unit/specs/util.vue-popper.spec.js @@ -0,0 +1,57 @@ +import VuePopper from 'element-ui/src/utils/vue-popper'; +import { createTest } from '../util'; + +const Popper = Object.assign({}, VuePopper, { + render(h) { + return h('div'); + }, + + created() { + this.popperElm = document.createElement('div'); + this.referenceElm = document.createElement('div'); + } +}); + +describe('Utils:VuePopper', () => { + it('createPopper', () => { + const vm = createTest(Popper, { placement: 'top' }); + vm.createPopper(); + expect(vm.popperJS._popper.getAttribute('x-placement')).to.equal('top'); + }); + + it('doDestroy', () => { + const vm = createTest(Popper, { placement: 'top' }); + vm.createPopper(); + expect(vm.popperJS._popper.getAttribute('x-placement')).to.equal('top'); + vm.doDestroy(); + expect(vm.popperJS).to.not.exist; + }); + + it('placement', () => { + const vm = createTest(Popper, { placement: 'bottom-start' }); + const vm2 = createTest(Popper, { placement: 'bottom-abc' }); + + vm.createPopper(); + vm2.createPopper(); + expect(vm.popperJS._popper.getAttribute('x-placement')).to.equal('bottom-start'); + expect(vm2.popperJS).to.not.exist; + }); + + it('display arrow', () => { + const vm = createTest(Popper, { + visibleArrow: true + }); + + vm.createPopper(); + expect(vm.popperJS._popper.querySelector('div[x-arrow]')).to.exist; + }); + + it('destroy', () => { + const vm = createTest(Popper, true); + + vm.createPopper(); + expect(document.body.contains(vm.popperElm)).to.true; + vm.$destroy(); + expect(document.body.contains(vm.popperElm)).to.false; + }); +});