result.spec.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import { createVue, destroyVM, waitImmediate } from '../util';
  2. const AXIOM = 'Rem is the best girl';
  3. describe('Result', () => {
  4. let vm;
  5. afterEach(() => {
  6. destroyVM(vm);
  7. });
  8. it('render test', () => {
  9. vm = createVue({
  10. template: '<el-result />'
  11. }, true);
  12. expect(vm.$el.querySelector('.el-result__icon')).to.exist;
  13. expect(Array.from(vm.$el.classList)).to.contain('el-result');
  14. });
  15. it('should render title props', () => {
  16. vm = createVue({
  17. template: '<el-result :title="title"/>',
  18. data() {
  19. return {
  20. title: AXIOM
  21. };
  22. }
  23. }, true);
  24. expect(vm.$el.querySelector('.el-result__title').innerText).to.be.equal(AXIOM);
  25. });
  26. it('should render sub-title props', () => {
  27. vm = createVue({
  28. template: '<el-result :sub-title="subTitle"/>',
  29. data() {
  30. return {
  31. subTitle: AXIOM
  32. };
  33. }
  34. }, true);
  35. expect(vm.$el.querySelector('.el-result__subtitle').innerText).to.be.equal(AXIOM);
  36. });
  37. it('should render icon props', async() => {
  38. vm = createVue({
  39. template: '<el-result :icon="icon"/>',
  40. data() {
  41. return {
  42. icon: 'success'
  43. };
  44. }
  45. }, true);
  46. expect(vm.$el.querySelector('.el-result__icon svg')).to.exist;
  47. expect(Array.from(vm.$el.querySelector('.el-result__icon svg').classList)).to.contain('icon-success');
  48. vm.icon = 'error';
  49. await waitImmediate();
  50. expect(vm.$el.querySelector('.el-result__icon svg')).to.exist;
  51. expect(Array.from(vm.$el.querySelector('.el-result__icon svg').classList)).to.contain('icon-error');
  52. vm.icon = 'warning';
  53. await waitImmediate();
  54. expect(vm.$el.querySelector('.el-result__icon svg')).to.exist;
  55. expect(Array.from(vm.$el.querySelector('.el-result__icon svg').classList)).to.contain('icon-warning');
  56. vm.icon = 'info';
  57. await waitImmediate();
  58. expect(vm.$el.querySelector('.el-result__icon svg')).to.exist;
  59. expect(Array.from(vm.$el.querySelector('.el-result__icon svg').classList)).to.contain('icon-info');
  60. });
  61. it('should render icon slots', () => {
  62. vm = createVue({
  63. template: '<el-result><template slot="icon">{{icon}}</template></el-result>',
  64. data() {
  65. return {
  66. icon: AXIOM
  67. };
  68. }
  69. }, true);
  70. expect(vm.$el.querySelector('.el-result__icon')).to.exist;
  71. expect(vm.$el.querySelector('.el-result__icon').innerText).to.be.equal(AXIOM);
  72. });
  73. it('should render title slots', () => {
  74. vm = createVue({
  75. template: '<el-result><template slot="title">{{title}}</template></el-result>',
  76. data() {
  77. return {
  78. title: AXIOM
  79. };
  80. }
  81. }, true);
  82. expect(vm.$el.querySelector('.el-result__title')).to.exist;
  83. expect(vm.$el.querySelector('.el-result__title').innerText).to.be.equal(AXIOM);
  84. });
  85. it('should render sub-title slots', () => {
  86. vm = createVue({
  87. template: '<el-result><template slot="subTitle">{{subTitle}}</template></el-result>',
  88. data() {
  89. return {
  90. subTitle: AXIOM
  91. };
  92. }
  93. }, true);
  94. expect(vm.$el.querySelector('.el-result__subtitle')).to.exist;
  95. expect(vm.$el.querySelector('.el-result__subtitle').innerText).to.be.equal(AXIOM);
  96. });
  97. it('should render extra slots', () => {
  98. vm = createVue({
  99. template: '<el-result><template slot="extra">{{extra}}</template></el-result>',
  100. data() {
  101. return {
  102. extra: AXIOM
  103. };
  104. }
  105. }, true);
  106. expect(vm.$el.querySelector('.el-result__extra')).to.exist;
  107. expect(vm.$el.querySelector('.el-result__extra').innerText).to.be.equal(AXIOM);
  108. });
  109. });