color-picker.spec.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import { createTest, createVue, destroyVM } from '../util';
  2. import ColorPicker from 'packages/color-picker';
  3. describe('ColorPicker', () => {
  4. let vm;
  5. afterEach(() => {
  6. vm.$destroy(true);
  7. destroyVM(vm);
  8. const dropdown = document.querySelector('.el-color-dropdown');
  9. if (dropdown && dropdown.parentNode) dropdown.parentNode.removeChild(dropdown);
  10. });
  11. it('should works', () => {
  12. vm = createTest(ColorPicker, true);
  13. expect(vm.$el).to.exist;
  14. });
  15. it('should show alpha slider when show-alpha=true', (done) => {
  16. const vm = createVue({
  17. template: `
  18. <el-color-picker v-model="color" show-alpha></el-color-picker>
  19. `,
  20. data() {
  21. return {
  22. color: null
  23. };
  24. }
  25. }, true);
  26. const trigger = vm.$el.querySelector('.el-color-picker__trigger');
  27. trigger.click();
  28. setTimeout(() => {
  29. const alphaSlider = document.querySelector('.el-color-alpha-slider');
  30. expect(alphaSlider).to.exist;
  31. done();
  32. }, ANIMATION_TIME);
  33. });
  34. it('should show color picker when click trigger', (done) => {
  35. vm = createTest(ColorPicker, true);
  36. const trigger = vm.$el.querySelector('.el-color-picker__trigger');
  37. trigger.click();
  38. vm.$nextTick(() => {
  39. const dropdown = document.querySelector('.el-color-dropdown');
  40. expect(dropdown).to.exist;
  41. done();
  42. });
  43. });
  44. const ANIMATION_TIME = 300;
  45. it('should pick a color when confirm button click', (done) => {
  46. const vm = createVue({
  47. template: `
  48. <el-color-picker v-model="color"></el-color-picker>
  49. `,
  50. data() {
  51. return {
  52. color: null
  53. };
  54. }
  55. }, true);
  56. const trigger = vm.$el.querySelector('.el-color-picker__trigger');
  57. trigger.click();
  58. setTimeout(() => {
  59. const dropdown = document.querySelector('.el-color-dropdown__btn');
  60. dropdown.click();
  61. vm.$nextTick(() => {
  62. expect(vm.color).to.equal('#FF0000');
  63. done();
  64. });
  65. }, ANIMATION_TIME);
  66. });
  67. it('should init the right color when open', (done) => {
  68. const vm = createVue({
  69. template: `
  70. <el-color-picker v-model="color"></el-color-picker>
  71. `,
  72. data() {
  73. return {
  74. color: '#0f0'
  75. };
  76. }
  77. }, true);
  78. const trigger = vm.$el.querySelector('.el-color-picker__trigger');
  79. trigger.click();
  80. setTimeout(() => {
  81. const dropdown = document.querySelector('.el-color-dropdown__btn');
  82. dropdown.click();
  83. vm.$nextTick(() => {
  84. const hueBar = document.querySelector('.el-color-hue-slider__thumb');
  85. const top = parseInt(hueBar.style.top, 10);
  86. expect(top > 10).to.be.true;
  87. done();
  88. });
  89. }, ANIMATION_TIME);
  90. });
  91. it('should clear a color when clear button click', (done) => {
  92. const vm = createVue({
  93. template: `
  94. <el-color-picker v-model="color"></el-color-picker>
  95. `,
  96. data() {
  97. return {
  98. color: '#f00'
  99. };
  100. }
  101. }, true);
  102. const trigger = vm.$el.querySelector('.el-color-picker__trigger');
  103. trigger.click();
  104. setTimeout(() => {
  105. const clearBtn = document.querySelector('.el-color-dropdown__link-btn');
  106. clearBtn.click();
  107. setTimeout(() => {
  108. expect(vm.color).to.equal(null);
  109. done();
  110. }, 30);
  111. }, ANIMATION_TIME);
  112. });
  113. });