message.spec.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import { triggerEvent } from '../util';
  2. import Message from 'packages/message';
  3. describe('Message', () => {
  4. afterEach(() => {
  5. const el = document.querySelector('.el-message');
  6. if (!el) return;
  7. if (el.parentNode) {
  8. el.parentNode.removeChild(el);
  9. }
  10. if (el.__vue__) {
  11. el.__vue__.$destroy();
  12. }
  13. });
  14. it('automatically close', done => {
  15. Message({
  16. message: '灰风',
  17. duration: 500
  18. });
  19. const message = document.querySelector('.el-message__group p');
  20. expect(document.querySelector('.el-message')).to.exist;
  21. expect(message.textContent).to.equal('灰风');
  22. setTimeout(() => {
  23. expect(document.querySelector('.el-message')).to.not.exist;
  24. done();
  25. }, 1000);
  26. });
  27. it('manually close', done => {
  28. Message({
  29. message: '夏天',
  30. showClose: true
  31. });
  32. setTimeout(() => {
  33. document.querySelector('.el-message__closeBtn').click();
  34. setTimeout(() => {
  35. expect(document.querySelector('.el-message')).to.not.exist;
  36. done();
  37. }, 500);
  38. }, 500);
  39. });
  40. it('custom icon', done => {
  41. Message({
  42. message: '夏天',
  43. iconClass: 'el-icon-close'
  44. });
  45. setTimeout(() => {
  46. const icon = document.querySelector('.el-message__icon i');
  47. expect(icon.classList.contains('el-icon-close')).to.true;
  48. done();
  49. }, 500);
  50. });
  51. it('close all', done => {
  52. Message({
  53. message: '夏天',
  54. duration: 0
  55. });
  56. Message({
  57. message: '淑女',
  58. duration: 0
  59. });
  60. setTimeout(() => {
  61. Message.closeAll();
  62. setTimeout(() => {
  63. expect(document.querySelector('.el-message')).to.not.exist;
  64. done();
  65. }, 500);
  66. }, 500);
  67. });
  68. it('create', () => {
  69. Message('娜梅莉亚');
  70. expect(document.querySelector('.el-message')).to.exist;
  71. });
  72. it('invoke with type', () => {
  73. Message.success('毛毛狗');
  74. expect(document.querySelector('.el-message').__vue__.type).to.equal('success');
  75. });
  76. it('reset timer', done => {
  77. Message({
  78. message: '白灵',
  79. duration: 1000
  80. });
  81. setTimeout(() => {
  82. triggerEvent(document.querySelector('.el-message'), 'mouseenter');
  83. setTimeout(() => {
  84. expect(document.querySelector('.el-message')).to.exist;
  85. done();
  86. }, 700);
  87. }, 500);
  88. });
  89. });