tag.spec.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import { createVue, destroyVM } from '../util';
  2. describe('Tag', () => {
  3. let vm;
  4. afterEach(() => {
  5. destroyVM(vm);
  6. });
  7. it('create', () => {
  8. vm = createVue({
  9. template: `
  10. <el-tag></el-tag>
  11. `
  12. }, true);
  13. expect(vm.$el.classList.contains('el-tag')).to.be.true;
  14. expect(vm.$el.classList.contains('el-tag__close')).to.be.false;
  15. expect(vm.$el.classList.contains('is-hit')).to.be.false;
  16. expect(vm.$el.classList.contains('md-fade-center')).to.be.false;
  17. });
  18. it('text', () => {
  19. vm = createVue({
  20. template: `
  21. <el-tag>标签</el-tag>
  22. `
  23. }, true);
  24. expect(vm.$el.textContent.length).to.be.at.least(2);
  25. });
  26. it('type', () => {
  27. vm = createVue({
  28. template: `
  29. <el-tag type="primary"></el-tag>
  30. `
  31. }, true);
  32. expect(vm.$el.classList.contains('el-tag--primary')).to.be.true;
  33. });
  34. it('hit', () => {
  35. vm = createVue({
  36. template: `
  37. <el-tag hit></el-tag>
  38. `
  39. }, true);
  40. expect(vm.$el.classList.contains('is-hit')).to.be.true;
  41. });
  42. it('closable', done => {
  43. vm = createVue({
  44. template: `
  45. <el-tag closable @close="handleClose">关闭标签</el-tag>
  46. `,
  47. data() {
  48. return {
  49. isClose: false
  50. };
  51. },
  52. methods: {
  53. handleClose() {
  54. this.isClose = true;
  55. }
  56. }
  57. }, true);
  58. var closeBtn = vm.$el.querySelector('.el-tag .el-tag__close');
  59. expect(closeBtn).to.exist;
  60. closeBtn.click();
  61. vm.$nextTick(_ => {
  62. expect(vm.isClose).to.true;
  63. done();
  64. });
  65. });
  66. it('closeTransition', () => {
  67. vm = createVue({
  68. template: `
  69. <el-tag closable closeTransition></el-tag>
  70. `
  71. }, true);
  72. expect(vm.$el.classList.contains('md-fade-center')).to.be.false;
  73. });
  74. it('color', () => {
  75. vm = createVue({
  76. template: `
  77. <el-tag ref="tag" color="rgb(0, 0, 0)"></el-tag>
  78. `
  79. }, true);
  80. expect(vm.$el.style.backgroundColor).to.equal('rgb(0, 0, 0)');
  81. });
  82. it('click', done => {
  83. vm = createVue({
  84. template: `
  85. <el-tag ref="tag" @click="handleClick">点击标签</el-tag>
  86. `,
  87. data() {
  88. return {
  89. clicksCount: 0
  90. };
  91. },
  92. methods: {
  93. handleClick() {
  94. this.clicksCount = this.clicksCount + 1;
  95. }
  96. }
  97. }, true);
  98. let tag = vm.$refs.tag;
  99. tag.$el.click();
  100. setTimeout(_ => {
  101. expect(vm.clicksCount).to.be.equal(1);
  102. done();
  103. }, 20);
  104. });
  105. });