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