util.vue-popper.spec.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import VuePopper from 'element-ui/src/utils/vue-popper';
  2. import { createTest } from '../util';
  3. const Popper = Object.assign({}, VuePopper, {
  4. render(h) {
  5. return h('div');
  6. },
  7. created() {
  8. this.popperElm = document.createElement('div');
  9. this.referenceElm = document.createElement('div');
  10. }
  11. });
  12. describe('Utils:VuePopper', () => {
  13. it('createPopper', () => {
  14. const vm = createTest(Popper, { placement: 'top' });
  15. vm.createPopper();
  16. expect(vm.popperJS._popper.getAttribute('x-placement')).to.equal('top');
  17. });
  18. it('doDestroy', () => {
  19. const vm = createTest(Popper, { placement: 'top' });
  20. vm.createPopper();
  21. expect(vm.popperJS._popper.getAttribute('x-placement')).to.equal('top');
  22. vm.doDestroy();
  23. expect(vm.popperJS).to.not.exist;
  24. });
  25. it('placement', () => {
  26. const vm = createTest(Popper, { placement: 'bottom-start' });
  27. const vm2 = createTest(Popper, { placement: 'bottom-abc' });
  28. vm.createPopper();
  29. vm2.createPopper();
  30. expect(vm.popperJS._popper.getAttribute('x-placement')).to.equal('bottom-start');
  31. expect(vm2.popperJS).to.not.exist;
  32. });
  33. it('display arrow', () => {
  34. const vm = createTest(Popper, {
  35. visibleArrow: true
  36. });
  37. vm.createPopper();
  38. expect(vm.popperJS._popper.querySelector('div[x-arrow]')).to.exist;
  39. });
  40. it('destroy', () => {
  41. const vm = createTest(Popper, true);
  42. vm.createPopper();
  43. expect(document.body.contains(vm.popperElm)).to.true;
  44. vm.$destroy();
  45. expect(document.body.contains(vm.popperElm)).to.false;
  46. });
  47. });