message.spec.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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__content');
  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 i');
  47. expect(icon.classList.contains('el-icon-close')).to.true;
  48. done();
  49. }, 500);
  50. });
  51. it('html string', () => {
  52. Message({
  53. message: '<strong>夏天</strong>',
  54. dangerouslyUseHTMLString: true
  55. });
  56. const message = document.querySelector('.el-message strong');
  57. expect(message.textContent).to.equal('夏天');
  58. });
  59. it('close all', done => {
  60. Message({
  61. message: '夏天',
  62. duration: 0
  63. });
  64. Message({
  65. message: '淑女',
  66. duration: 0
  67. });
  68. setTimeout(() => {
  69. Message.closeAll();
  70. setTimeout(() => {
  71. expect(document.querySelector('.el-message')).to.not.exist;
  72. done();
  73. }, 500);
  74. }, 500);
  75. });
  76. it('create', () => {
  77. Message('娜梅莉亚');
  78. expect(document.querySelector('.el-message')).to.exist;
  79. });
  80. it('invoke with type', () => {
  81. Message.success('毛毛狗');
  82. expect(document.querySelector('.el-message').__vue__.type).to.equal('success');
  83. });
  84. it('center', () => {
  85. Message({
  86. message: '夏天',
  87. center: true,
  88. duration: 0
  89. });
  90. expect(document.querySelector('.el-message').classList.contains('is-center')).to.true;
  91. });
  92. it('reset timer', done => {
  93. Message({
  94. message: '白灵',
  95. duration: 1000
  96. });
  97. setTimeout(() => {
  98. triggerEvent(document.querySelector('.el-message'), 'mouseenter');
  99. setTimeout(() => {
  100. expect(document.querySelector('.el-message')).to.exist;
  101. done();
  102. }, 700);
  103. }, 500);
  104. });
  105. });