tag.spec.js 2.8 KB

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