timeline.spec.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. import { createVue, destroyVM } from '../util';
  2. describe('Timeline', () => {
  3. let vm;
  4. afterEach(() => {
  5. destroyVM(vm);
  6. });
  7. it('create', () => {
  8. vm = createVue({
  9. template: `
  10. <el-timeline>
  11. <el-timeline-item
  12. v-for="(activity, index) in activities"
  13. :key="index"
  14. :timestamp="activity.timestamp">
  15. {{activity.content}}
  16. </el-timeline-item>
  17. </el-timeline>
  18. `,
  19. data() {
  20. return {
  21. activities: [{
  22. content: '创建成功',
  23. timestamp: '2018-04-11'
  24. }, {
  25. content: '通过审核',
  26. timestamp: '2018-04-13'
  27. }, {
  28. content: '活动按期开始',
  29. timestamp: '2018-04-15'
  30. }]
  31. };
  32. }
  33. }, true);
  34. let contentElms = vm.$el.querySelectorAll('.el-timeline-item__content');
  35. contentElms.forEach((elm, index) => {
  36. expect(elm.innerText).to.equal(vm.activities[index].content);
  37. });
  38. let timestampElms = vm.$el.querySelectorAll('.el-timeline-item__timestamp');
  39. timestampElms.forEach((elm, index) => {
  40. expect(elm.innerText).to.equal(vm.activities[index].timestamp);
  41. });
  42. });
  43. it('reverse', done => {
  44. vm = createVue({
  45. template: `
  46. <el-timeline :reverse="reverse">
  47. <el-timeline-item
  48. v-for="(activity, index) in activities"
  49. :key="index"
  50. :timestamp="activity.timestamp">
  51. {{activity.content}}
  52. </el-timeline-item>
  53. </el-timeline>
  54. `,
  55. data() {
  56. return {
  57. reverse: true,
  58. activities: [{
  59. content: '创建成功',
  60. timestamp: '2018-04-11'
  61. }, {
  62. content: '通过审核',
  63. timestamp: '2018-04-13'
  64. }, {
  65. content: '活动按期开始',
  66. timestamp: '2018-04-15'
  67. }]
  68. };
  69. }
  70. }, true);
  71. const contentElms = vm.$el.querySelectorAll('.el-timeline-item__content');
  72. contentElms.forEach((elm, index) => {
  73. expect(elm.innerText).to.equal(vm.activities[vm.activities.length - index - 1].content);
  74. });
  75. vm.reverse = false;
  76. vm.$nextTick(() => {
  77. const contentElms = vm.$el.querySelectorAll('.el-timeline-item__content');
  78. contentElms.forEach((elm, index) => {
  79. expect(elm.innerText).to.equal(vm.activities[index].content);
  80. });
  81. done();
  82. });
  83. });
  84. it('placement', () => {
  85. vm = createVue({
  86. template: `
  87. <el-timeline>
  88. <el-timeline-item
  89. v-for="(activity, index) in activities"
  90. :key="index"
  91. :timestamp="activity.timestamp"
  92. :placement="activity.placement">
  93. {{activity.content}}
  94. </el-timeline-item>
  95. </el-timeline>
  96. `,
  97. data() {
  98. return {
  99. activities: [{
  100. content: '创建成功',
  101. timestamp: '2018-04-11',
  102. placement: 'top'
  103. }, {
  104. content: '通过审核',
  105. timestamp: '2018-04-13'
  106. }, {
  107. content: '活动按期开始',
  108. timestamp: '2018-04-15'
  109. }]
  110. };
  111. }
  112. }, true);
  113. const timestampElm = vm.$el.querySelectorAll('.el-timeline-item__timestamp')[0];
  114. expect(timestampElm.classList.contains('is-top')).to.true;
  115. });
  116. it('hide-timestamp', () => {
  117. vm = createVue({
  118. template: `
  119. <el-timeline>
  120. <el-timeline-item
  121. v-for="(activity, index) in activities"
  122. :key="index"
  123. :timestamp="activity.timestamp"
  124. :hide-timestamp="activity.hideTimestamp">
  125. {{activity.content}}
  126. </el-timeline-item>
  127. </el-timeline>
  128. `,
  129. data() {
  130. return {
  131. activities: [{
  132. content: '创建成功',
  133. timestamp: '2018-04-11',
  134. hideTimestamp: true
  135. }, {
  136. content: '通过审核',
  137. timestamp: '2018-04-13'
  138. }, {
  139. content: '活动按期开始',
  140. timestamp: '2018-04-15'
  141. }]
  142. };
  143. }
  144. }, true);
  145. const timestampElms = vm.$el.querySelectorAll('.el-timeline-item__timestamp');
  146. expect(timestampElms.length).to.equal(2);
  147. });
  148. it('color', () => {
  149. vm = createVue({
  150. template: `
  151. <el-timeline>
  152. <el-timeline-item
  153. timestamp="2018-04-11"
  154. color="#f00">
  155. 创建成功
  156. </el-timeline-item>
  157. </el-timeline>
  158. `
  159. }, true);
  160. const nodeElm = vm.$el.querySelector('.el-timeline-item__node');
  161. expect(nodeElm.style.backgroundColor).to.equal('rgb(255, 0, 0)');
  162. });
  163. it('type', () => {
  164. vm = createVue({
  165. template: `
  166. <el-timeline>
  167. <el-timeline-item
  168. timestamp="2018-04-11"
  169. type="primary">
  170. 创建成功
  171. </el-timeline-item>
  172. </el-timeline>
  173. `
  174. }, true);
  175. const nodeElm = vm.$el.querySelector('.el-timeline-item__node');
  176. expect(nodeElm.classList.contains('el-timeline-item__node--primary')).to.true;
  177. });
  178. it('size', () => {
  179. vm = createVue({
  180. template: `
  181. <el-timeline>
  182. <el-timeline-item
  183. timestamp="2018-04-11"
  184. type="large">
  185. 创建成功
  186. </el-timeline-item>
  187. </el-timeline>
  188. `
  189. }, true);
  190. const nodeElm = vm.$el.querySelector('.el-timeline-item__node');
  191. expect(nodeElm.classList.contains('el-timeline-item__node--large')).to.true;
  192. });
  193. it('icon', () => {
  194. vm = createVue({
  195. template: `
  196. <el-timeline>
  197. <el-timeline-item
  198. timestamp="2018-04-11"
  199. icon="el-icon-more">
  200. 创建成功
  201. </el-timeline-item>
  202. </el-timeline>
  203. `
  204. }, true);
  205. const nodeElm = vm.$el.querySelector('.el-timeline-item__icon');
  206. expect(nodeElm.classList.contains('el-icon-more')).to.true;
  207. });
  208. });