radio.spec.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { createVue, destroyVM } from '../util';
  2. describe('Radio', () => {
  3. let vm;
  4. afterEach(() => {
  5. destroyVM(vm);
  6. });
  7. it('create', done => {
  8. vm = createVue({
  9. template: `
  10. <el-radio v-model="radio" label="a">
  11. </el-radio>
  12. `,
  13. data() {
  14. return {
  15. radio: ''
  16. };
  17. }
  18. }, true);
  19. let radioElm = vm.$el;
  20. expect(radioElm.classList.contains('el-radio')).to.be.true;
  21. radioElm.click();
  22. vm.$nextTick(_ => {
  23. expect(radioElm.querySelector('.is-checked')).to.be.ok;
  24. done();
  25. });
  26. });
  27. it('disabled', done => {
  28. vm = createVue({
  29. template: `
  30. <el-radio
  31. v-model="radio"
  32. label="3"
  33. disabled
  34. >
  35. </el-radio>
  36. `,
  37. data() {
  38. return {
  39. radio: ''
  40. };
  41. }
  42. }, true);
  43. let radioElm = vm.$el;
  44. radioElm.click();
  45. vm.$nextTick(_ => {
  46. expect(vm.radio === '').to.be.true;
  47. expect(radioElm.querySelector('.is-disabled')).to.be.ok;
  48. done();
  49. });
  50. });
  51. it('radio group', done => {
  52. vm = createVue({
  53. template: `
  54. <el-radio-group v-model="radio">
  55. <el-radio :label="3" ref="radio1">备选项</el-radio>
  56. <el-radio :label="6" ref="radio2">备选项</el-radio>
  57. <el-radio :label="9">备选项</el-radio>
  58. </el-radio-group>
  59. `,
  60. data() {
  61. return {
  62. radio: 3
  63. };
  64. }
  65. }, true);
  66. expect(vm.$refs.radio1.$el.querySelector('.is-checked')).to.be.ok;
  67. let radioElm = vm.$refs.radio2.$el;
  68. radioElm.click();
  69. vm.$nextTick(_ => {
  70. expect(radioElm.querySelector('.is-checked')).to.be.ok;
  71. expect(vm.radio === 6).to.be.true;
  72. done();
  73. });
  74. });
  75. it('radio button', done => {
  76. vm = createVue({
  77. template: `
  78. <el-radio-group v-model="radio">
  79. <el-radio-button :label="3" ref="radio1">备选项</el-radio-button>
  80. <el-radio-button :label="6" ref="radio2">备选项</el-radio-button>
  81. <el-radio-button :label="9">备选项</el-radio-button>
  82. </el-radio-group>
  83. `,
  84. data() {
  85. return {
  86. radio: 3
  87. };
  88. }
  89. }, true);
  90. expect(vm.$refs.radio1.$el.classList.contains('is-active')).to.be.true;
  91. let radio = vm.$refs.radio2;
  92. radio.$el.click();
  93. vm.$nextTick(_ => {
  94. expect(radio.$el.classList.contains('is-active')).to.be.true;
  95. expect(vm.radio === 6).to.be.true;
  96. done();
  97. });
  98. });
  99. });