Browse Source

VuePopper: add test

qingwei.li 8 years ago
parent
commit
0cb98686b7
2 changed files with 58 additions and 1 deletions
  1. 1 1
      package.json
  2. 57 0
      test/unit/specs/util.vue-popper.spec.js

+ 1 - 1
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",

+ 57 - 0
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;
+  });
+});