@hi-ui/hiui 2.15.10 → 2.15.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/es/_util/warning.js +2 -2
  3. package/es/alert/__test__/index.test.js +67 -0
  4. package/es/alert/index.js +147 -6
  5. package/es/alert/style/index.css +1 -1
  6. package/es/badge/index.js +87 -9
  7. package/es/badge/style/index.css +1 -1
  8. package/es/badge/style/index.js +0 -0
  9. package/es/button/Button.js +51 -59
  10. package/es/button/ButtonGroup.js +31 -23
  11. package/es/button/IconLoading.js +2 -2
  12. package/es/button/__test__/index.test.js +29 -0
  13. package/es/button/index.js +2 -3
  14. package/es/button/style/index.css +1 -1
  15. package/es/card/index.js +42 -54
  16. package/es/card/style/index.css +1 -1
  17. package/es/cascader/Cascader.js +116 -181
  18. package/es/cascader/__test__/index.test.js +283 -0
  19. package/es/cascader/index.js +2 -5
  20. package/es/cascader/menu.js +155 -0
  21. package/es/cascader/style/cascader.css +1 -1
  22. package/es/cascader/style/menu.css +1 -1
  23. package/es/checkbox/{checkbox-legacy/Base.js → Base.js} +31 -46
  24. package/es/checkbox/CheckBox.js +185 -0
  25. package/es/checkbox/index.js +4 -13
  26. package/es/checkbox/style/index.css +1 -1
  27. package/es/collapse/__test__/index.test.js +58 -0
  28. package/es/collapse/index.js +93 -79
  29. package/es/collapse/style/index.css +1 -1
  30. package/es/confirm/index.js +50 -37
  31. package/es/context/index.js +37 -39
  32. package/es/counter/__test__/index.test.js +52 -0
  33. package/es/counter/index.js +270 -6
  34. package/es/counter/style/index.css +1 -1
  35. package/es/date-picker/BasePicker.js +288 -374
  36. package/es/date-picker/Calender.js +90 -326
  37. package/es/date-picker/DatePanel.js +186 -175
  38. package/es/date-picker/DatePicker.js +51 -151
  39. package/es/date-picker/DateRangePanel.js +181 -253
  40. package/es/date-picker/Modal.js +25 -15
  41. package/es/date-picker/Time.js +336 -230
  42. package/es/date-picker/TimePanel.js +32 -27
  43. package/es/date-picker/TimePeriodPanel.js +32 -21
  44. package/es/date-picker/TimePicker.js +40 -42
  45. package/es/date-picker/TimeRangePanel.js +42 -32
  46. package/es/date-picker/Type.js +1 -5
  47. package/es/date-picker/WeekRangePanel.js +150 -237
  48. package/es/date-picker/constants.js +28 -14
  49. package/es/date-picker/dateUtil.js +52 -221
  50. package/es/date-picker/index.js +2 -5
  51. package/es/date-picker/style/index.css +1 -1
  52. package/es/date-picker/util.js +8 -101
  53. package/es/dropdown/Dropdown.js +199 -193
  54. package/es/dropdown/{tests → __test__}/index.test.js +2 -2
  55. package/es/dropdown/index.js +4 -73
  56. package/es/dropdown/style/index.css +1 -1
  57. package/es/dropdown/style/index.js +2 -0
  58. package/es/ficon/index.js +23 -13
  59. package/es/form/index.js +171 -6
  60. package/es/form/{Item.js → item.js} +53 -53
  61. package/es/form/style/index.css +1 -1
  62. package/es/grid/index.js +37 -25
  63. package/es/icon/index.js +32 -21
  64. package/es/index.js +9 -61
  65. package/es/input/index.js +345 -28
  66. package/es/input/style/index.css +1 -1
  67. package/es/input/util.js +18 -26
  68. package/es/lib/withDragDropContext.js +2 -2
  69. package/es/loading/index.js +129 -5
  70. package/es/loading/style/index.css +0 -0
  71. package/es/loading/style/index.js +0 -0
  72. package/es/locales/en-US.js +11 -45
  73. package/es/locales/index.js +2 -16
  74. package/es/locales/zh-CN.js +12 -46
  75. package/es/menu/Item.js +41 -32
  76. package/es/menu/ItemGroup.js +81 -0
  77. package/es/menu/SubMenu.js +74 -55
  78. package/es/menu/Title.js +42 -36
  79. package/es/menu/index.js +419 -12
  80. package/es/menu/style/index.css +1 -1
  81. package/es/modal/__test__/index.test.js +123 -0
  82. package/es/modal/index.js +61 -77
  83. package/es/modal/style/index.css +1 -1
  84. package/es/nav-menu/NavMenu.js +45 -31
  85. package/es/nav-menu/__test__/index.test.js +2 -2
  86. package/es/nav-menu/index.js +2 -2
  87. package/es/notification/__test__/index.test.js +56 -0
  88. package/es/notification/index.js +231 -68
  89. package/es/notification/style/index.css +1 -1
  90. package/es/notification/style/index.js +0 -0
  91. package/es/pagination/Pager.js +8 -6
  92. package/es/pagination/Pagination.js +115 -124
  93. package/es/pagination/__test__/index.test.js +140 -0
  94. package/es/pagination/index.js +8 -9
  95. package/es/pagination/style/index.css +1 -1
  96. package/es/panel/index.js +33 -23
  97. package/es/popover/__test__/index.test.js +2 -2
  98. package/es/popover/index.js +69 -71
  99. package/es/popper/index.js +54 -64
  100. package/es/popper/style/index.css +1 -1
  101. package/es/progress/BarProgress.js +43 -109
  102. package/es/progress/CircleProgress.js +10 -9
  103. package/es/progress/DashboardProgress.js +9 -7
  104. package/es/progress/index.js +100 -8
  105. package/es/progress/style/index.css +1 -1
  106. package/es/radio/{radio-legacy/__test__ → __test__}/index.test.js +10 -10
  107. package/es/radio/index.js +216 -10
  108. package/es/radio/style/index.css +1 -1
  109. package/es/rate/Icons.js +2 -2
  110. package/es/rate/Rate.js +90 -65
  111. package/es/rate/__test__/index.test.js +54 -0
  112. package/es/rate/index.js +2 -5
  113. package/es/rate/style/index.css +1 -1
  114. package/es/select/Option.js +93 -0
  115. package/es/select/Select.js +253 -325
  116. package/es/select/SelectDropdown.js +63 -215
  117. package/es/select/SelectInput.js +54 -88
  118. package/es/select/__test__/index.test.js +429 -0
  119. package/es/select/index.js +4 -6
  120. package/es/select/style/select-dropdown.css +1 -1
  121. package/es/select/style/select-input.css +1 -1
  122. package/es/stepper/index.js +127 -21
  123. package/es/stepper/style/index.css +1 -1
  124. package/es/style/color/colors.css +0 -0
  125. package/es/style/icon/diyIcon.css +1 -1
  126. package/es/style/icon/index.css +1 -1
  127. package/es/style/index.css +0 -0
  128. package/es/style/mixins/colors.css +0 -0
  129. package/es/style/mixins/index.css +0 -0
  130. package/es/style/theme/dark.css +0 -0
  131. package/es/style/theme/default.css +0 -0
  132. package/es/switch/{__tests__ → __test__}/index.test.js +2 -31
  133. package/es/switch/index.js +36 -24
  134. package/es/switch/style/index.css +1 -1
  135. package/es/table/__test__/index.test.js +73 -0
  136. package/es/table/{Body.js → body.js} +52 -36
  137. package/es/table/checkbox/index.js +36 -33
  138. package/es/table/clickOuterside.js +115 -0
  139. package/es/table/{Footer.js → footer.js} +41 -24
  140. package/es/table/{Header.js → header.js} +54 -41
  141. package/es/table/index.js +300 -262
  142. package/es/table/menu/index.js +34 -32
  143. package/es/table/pover.js +154 -0
  144. package/es/table/prefix.js +2 -2
  145. package/es/table/style/Table.css +1 -1
  146. package/es/table/style/index.css +1 -1
  147. package/es/table/tableContent.js +120 -0
  148. package/es/tabs/ItemDropdown.js +51 -39
  149. package/es/tabs/TabPane.js +35 -25
  150. package/es/tabs/Tabs.js +91 -98
  151. package/es/tabs/index.js +3 -9
  152. package/es/tabs/style/index.css +1 -1
  153. package/es/timeline/__test__/index.test.js +49 -0
  154. package/es/timeline/foldingItem.js +82 -0
  155. package/es/timeline/index.js +127 -203
  156. package/es/timeline/style/index.css +1 -1
  157. package/es/tooltip/__test__/index.test.js +67 -0
  158. package/es/tooltip/index.js +39 -86
  159. package/es/tooltip/style/index.css +1 -1
  160. package/es/transfer/Item.js +44 -53
  161. package/es/transfer/__test__/index.test.js +11 -0
  162. package/es/transfer/index.js +443 -4
  163. package/es/transfer/style/index.css +1 -1
  164. package/es/tree/Tree.js +86 -76
  165. package/es/tree/TreeDivider.js +3 -3
  166. package/es/tree/TreeItem.js +108 -204
  167. package/es/tree/TreeNode.js +318 -457
  168. package/es/tree/index.js +2 -9
  169. package/es/tree/style/index.css +1 -1
  170. package/es/tree/util.js +257 -9
  171. package/es/upload/{upload-legacy/Preview.js → Preview.js} +39 -33
  172. package/es/upload/Upload.js +193 -289
  173. package/es/upload/UploadAvatar.js +58 -44
  174. package/es/upload/UploadClick.js +45 -49
  175. package/es/upload/UploadDrag.js +43 -44
  176. package/es/upload/UploadPhoto.js +55 -70
  177. package/es/upload/UploadPictureCard.js +44 -39
  178. package/es/upload/index.js +71 -8
  179. package/es/upload/style/index.css +1 -1
  180. package/es/upload/tool.js +1 -0
  181. package/package.json +4 -1
  182. package/es/_util/SwitchVersion.js +0 -44
  183. package/es/_util/depreactedPropsCompat.js +0 -58
  184. package/es/_util/index.js +0 -32
  185. package/es/alert/Alert.js +0 -134
  186. package/es/alert/__tests__/index.test.js +0 -88
  187. package/es/badge/Badge.js +0 -90
  188. package/es/badge/__tests__/index.test.js +0 -82
  189. package/es/breadcrumb/__tests__/index.test.js +0 -61
  190. package/es/breadcrumb/index.js +0 -93
  191. package/es/breadcrumb/style/index.css +0 -1
  192. package/es/button/__tests__/index.test.js +0 -219
  193. package/es/card/__tests__/index.test.js +0 -169
  194. package/es/carousel/__tests__/index.test.js +0 -104
  195. package/es/carousel/index.js +0 -227
  196. package/es/carousel/style/index.css +0 -1
  197. package/es/carousel/style/index.js +0 -3
  198. package/es/cascader/Menu.js +0 -174
  199. package/es/cascader/__tests__/index.test.js +0 -389
  200. package/es/checkbox/Checkbox.js +0 -144
  201. package/es/checkbox/Group.js +0 -202
  202. package/es/checkbox/__tests__/index.test.js +0 -226
  203. package/es/checkbox/checkbox-legacy/CheckBox.js +0 -165
  204. package/es/checkbox/checkbox-legacy/index.js +0 -15
  205. package/es/checkbox/checkbox-legacy/style/index.css +0 -1
  206. package/es/checkbox/checkbox-legacy/style/index.js +0 -3
  207. package/es/collapse/__tests__/index.test.js +0 -111
  208. package/es/counter/Counter.js +0 -343
  209. package/es/counter/__tests__/index.test.js +0 -134
  210. package/es/counter/counter-legacy/index.js +0 -271
  211. package/es/date-picker/TimeList.js +0 -254
  212. package/es/date-picker/YMRangePanel.js +0 -372
  213. package/es/date-picker/__tests__/index.test.js +0 -961
  214. package/es/date-picker/datepicker-legacy/BasePicker.js +0 -519
  215. package/es/date-picker/datepicker-legacy/Calender.js +0 -430
  216. package/es/date-picker/datepicker-legacy/DatePanel.js +0 -463
  217. package/es/date-picker/datepicker-legacy/DatePicker.js +0 -107
  218. package/es/date-picker/datepicker-legacy/DateRangePanel.js +0 -496
  219. package/es/date-picker/datepicker-legacy/Modal.js +0 -71
  220. package/es/date-picker/datepicker-legacy/Time.js +0 -413
  221. package/es/date-picker/datepicker-legacy/TimePanel.js +0 -93
  222. package/es/date-picker/datepicker-legacy/TimePeriodPanel.js +0 -126
  223. package/es/date-picker/datepicker-legacy/TimePicker.js +0 -82
  224. package/es/date-picker/datepicker-legacy/TimeRangePanel.js +0 -98
  225. package/es/date-picker/datepicker-legacy/Type.js +0 -31
  226. package/es/date-picker/datepicker-legacy/WeekRangePanel.js +0 -345
  227. package/es/date-picker/datepicker-legacy/constants.js +0 -79
  228. package/es/date-picker/datepicker-legacy/dateUtil.js +0 -258
  229. package/es/date-picker/datepicker-legacy/index.js +0 -15
  230. package/es/date-picker/datepicker-legacy/local.js +0 -11
  231. package/es/date-picker/datepicker-legacy/style/index.css +0 -1
  232. package/es/date-picker/datepicker-legacy/style/index.js +0 -3
  233. package/es/date-picker/datepicker-legacy/style/timepicker.css +0 -1
  234. package/es/date-picker/datepicker-legacy/util.js +0 -60
  235. package/es/date-picker/toLunar.js +0 -172
  236. package/es/dropdown/DropdownButton.js +0 -106
  237. package/es/dropdown/DropdownMenu.js +0 -111
  238. package/es/dropdown/DropdownMenuItem.js +0 -178
  239. package/es/dropdown/__tests__/index.test.js +0 -317
  240. package/es/dropdown/utils.js +0 -35
  241. package/es/form/Form.js +0 -184
  242. package/es/form/__tests__/index.test.js +0 -575
  243. package/es/grid/__tests__/index.test.js +0 -104
  244. package/es/input/Input.js +0 -412
  245. package/es/input/__tests__/index.test.js +0 -381
  246. package/es/input/input-legacy/index.js +0 -353
  247. package/es/input/input-legacy/util.js +0 -176
  248. package/es/loading/Loading.js +0 -181
  249. package/es/loading/__tests__/index.test.js +0 -110
  250. package/es/locales/zh-Hant-HK.js +0 -121
  251. package/es/locales/zh-Hant-TW.js +0 -123
  252. package/es/menu/Menu.js +0 -422
  253. package/es/menu/__tests__/index.test.js +0 -279
  254. package/es/message/__tests__/index.test.js +0 -75
  255. package/es/message/index.js +0 -58
  256. package/es/message/style/index.css +0 -1
  257. package/es/message/style/index.js +0 -5
  258. package/es/modal/__tests__/index.test.js +0 -178
  259. package/es/nav-menu/__tests__/index.test.js +0 -27
  260. package/es/notice/Notice.js +0 -142
  261. package/es/notice/NoticeContainer.js +0 -113
  262. package/es/notice/__tests__/index.test.js +0 -174
  263. package/es/notice/index.js +0 -66
  264. package/es/notice/style/index.css +0 -1
  265. package/es/notice/style/index.js +0 -5
  266. package/es/notification/HandleNotification/index.js +0 -224
  267. package/es/notification/HandleNotification/style/index.css +0 -1
  268. package/es/notification/HandleNotification/style/index.js +0 -5
  269. package/es/notification/__tests__/index.test.js +0 -118
  270. package/es/pagination/__tests__/index.test.js +0 -248
  271. package/es/popover/__tests__/index.test.js +0 -152
  272. package/es/preview/index.js +0 -527
  273. package/es/preview/style/index.css +0 -1
  274. package/es/preview/style/index.js +0 -3
  275. package/es/progress/Progress.js +0 -110
  276. package/es/progress/__tests__/index.test.js +0 -131
  277. package/es/radio/Group.js +0 -203
  278. package/es/radio/Radio.js +0 -151
  279. package/es/radio/__tests__/index.test.js +0 -128
  280. package/es/radio/radio-legacy/index.js +0 -222
  281. package/es/radio/radio-legacy/style/index.css +0 -1
  282. package/es/radio/radio-legacy/style/index.js +0 -3
  283. package/es/rate/__tests__/index.test.js +0 -124
  284. package/es/select/__tests__/index.test.js +0 -505
  285. package/es/select/select-legacy/Option.js +0 -81
  286. package/es/select/select-legacy/Select.js +0 -710
  287. package/es/select/select-legacy/SelectDropdown.js +0 -164
  288. package/es/select/select-legacy/SelectInput.js +0 -312
  289. package/es/select/select-legacy/common.js +0 -19
  290. package/es/select/select-legacy/index.js +0 -16
  291. package/es/stepper/Stepper.js +0 -151
  292. package/es/stepper/__tests__/index.test.js +0 -161
  293. package/es/table/ClickOuterside.js +0 -103
  294. package/es/table/TableContent.js +0 -109
  295. package/es/table/__tests__/index.test.js +0 -133
  296. package/es/table/checkbox/style/index.css +0 -1
  297. package/es/table/checkbox/style/index.js +0 -3
  298. package/es/tabs/__tests__/index.test.js +0 -333
  299. package/es/tabs/tabs-legacy/ItemDropdown.js +0 -170
  300. package/es/tabs/tabs-legacy/TabPane.js +0 -78
  301. package/es/tabs/tabs-legacy/Tabs.js +0 -299
  302. package/es/tabs/tabs-legacy/index.js +0 -18
  303. package/es/tabs/tabs-legacy/style/index.css +0 -1
  304. package/es/tabs/tabs-legacy/style/index.js +0 -3
  305. package/es/tag/__tests__/index.test.js +0 -46
  306. package/es/tag/index.js +0 -94
  307. package/es/tag/style/index.css +0 -1
  308. package/es/tag/style/index.js +0 -3
  309. package/es/timeline/__tests__/index.test.js +0 -198
  310. package/es/tooltip/__tests__/index.test.js +0 -170
  311. package/es/transfer/Transfer.js +0 -566
  312. package/es/transfer/__tests__/index.test.js +0 -210
  313. package/es/tree/IconLoading.js +0 -38
  314. package/es/tree/__tests__/index.test.js +0 -603
  315. package/es/tree/tree-legacy/Tree.js +0 -337
  316. package/es/tree/tree-legacy/TreeDivider.js +0 -25
  317. package/es/tree/tree-legacy/TreeItem.js +0 -333
  318. package/es/tree/tree-legacy/TreeNode.js +0 -719
  319. package/es/tree/tree-legacy/index.js +0 -13
  320. package/es/tree/tree-legacy/style/index.css +0 -1
  321. package/es/tree/tree-legacy/style/index.js +0 -3
  322. package/es/tree/tree-legacy/util.js +0 -434
  323. package/es/upload/__tests__/index.test.js +0 -760
  324. package/es/upload/main.js +0 -91
  325. package/es/upload/upload-legacy/Upload.js +0 -435
  326. package/es/upload/upload-legacy/UploadAvatar.js +0 -322
  327. package/es/upload/upload-legacy/UploadClick.js +0 -125
  328. package/es/upload/upload-legacy/UploadDrag.js +0 -180
  329. package/es/upload/upload-legacy/UploadPhoto.js +0 -183
  330. package/es/upload/upload-legacy/UploadPictureCard.js +0 -126
  331. package/es/upload/upload-legacy/index.js +0 -75
  332. package/es/upload/upload-legacy/style/index.css +0 -1
  333. package/es/upload/upload-legacy/style/index.js +0 -5
  334. package/es/upload/upload-legacy/tool.js +0 -84
  335. package/es/watermark/index.js +0 -101
  336. package/es/watermark/watermark.js +0 -252
  337. /package/es/checkbox/{checkbox-legacy/common.js → common.js} +0 -0
  338. /package/es/{breadcrumb/style → style}/index.js +0 -0
  339. /package/es/upload/{upload-legacy/style → style}/preview.css +0 -0
  340. /package/es/upload/{upload-legacy/style → style}/preview.js +0 -0
@@ -1,961 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- var _react = _interopRequireDefault(require("react"));
8
-
9
- var _enzyme = require("enzyme");
10
-
11
- var _index = _interopRequireDefault(require("../index"));
12
-
13
- var _TimePicker = _interopRequireDefault(require("../TimePicker"));
14
-
15
- var _DatePicker = require("../DatePicker");
16
-
17
- var _dateUtil = require("../dateUtil");
18
-
19
- var _util = _interopRequireWildcard(require("../util"));
20
-
21
- var _constants = require("../constants");
22
-
23
- var _sinon = _interopRequireWildcard(require("sinon"));
24
-
25
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
-
27
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
28
-
29
- /* eslint-env jest */
30
- var mockDate = new Date('2019-11-20 12:00:00');
31
- var mockMinDate = (0, _dateUtil.subDays)(mockDate, 3);
32
- var mockMaxDate = (0, _dateUtil.addDays)(mockDate, 3);
33
- var mockCurrentDay = (0, _dateUtil.getDate)(mockDate);
34
- var mockCurrentYear = (0, _dateUtil.getYear)(mockDate);
35
- var mockCurrentMonth = (0, _dateUtil.getMonth)(mockDate) + 1; // 1~12
36
-
37
- var realCurrentDay = (0, _dateUtil.getDate)(new Date());
38
- describe('Datepicker', function () {
39
- describe('PropTypes', function () {
40
- it('type', function () {
41
- var types = ['date', 'daterange', 'month', 'year', 'week', 'weekrange', 'timeperiod'];
42
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement("div", null, types.map(function (type, index) {
43
- return /*#__PURE__*/_react["default"].createElement(_index["default"], {
44
- type: type,
45
- key: index
46
- });
47
- })));
48
- types.map(function (type, index) {
49
- // var expectLen = type.includes('range') ? 2 : 1
50
- // wrapper.find('.hi-datepicker__input').at(index).childAt(0).simulate('focus')
51
- expect(wrapper.find(".hi-datepicker__input--".concat(type))).toHaveLength(1); // expect(document.querySelectorAll('.hi-datepicker')).toHaveLength(1)
52
- // expect(document.querySelectorAll(`.hi-datepicker__calender-container--${type}`)).toHaveLength(expectLen)
53
- // document.body.click()
54
- });
55
- });
56
- it('date', function () {
57
- var callback = jest.fn();
58
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
59
- type: "date",
60
- onChange: callback
61
- }));
62
- expect(wrapper.find('input').getDOMNode().getAttribute('value')).toEqual('');
63
- expect(wrapper.find('input').getDOMNode().getAttribute('placeholder')).toEqual('请选择日期');
64
- wrapper.find('input').simulate('focus');
65
- expect(wrapper.find('td.current').find('span').text()).toEqual(realCurrentDay.toString()); // string
66
-
67
- wrapper.setProps({
68
- value: '2019-11-20'
69
- });
70
- expect(wrapper.find('td.current').find('span').text()).toEqual('20'); // number
71
-
72
- wrapper.setProps({
73
- value: mockDate.getTime()
74
- });
75
- expect(wrapper.find('td.current').find('span').text()).toEqual(mockCurrentDay.toString());
76
- wrapper.setProps({
77
- value: undefined
78
- });
79
- expect(wrapper.find('td.current').find('span').text()).toEqual(realCurrentDay.toString());
80
- wrapper.setProps({
81
- value: null
82
- });
83
- expect(wrapper.find('td.current').find('span').text()).toEqual(realCurrentDay.toString());
84
- wrapper.setProps({
85
- value: mockDate
86
- });
87
- expect(wrapper.find('td.current').find('span').text()).toEqual(mockCurrentDay.toString());
88
- wrapper.find(".hi-datepicker__panel--left td[value=".concat(15, "]:not(.prev):not(.next)")).simulate('click');
89
- expect(callback).toHaveBeenCalled();
90
- wrapper.find('input').simulate('focus'); // 月份减少
91
-
92
- wrapper.find('.hi-datepicker__header-btns').at(0).childAt(1).simulate('click');
93
- expect(wrapper.find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('10月')); // 月份增加
94
-
95
- wrapper.find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
96
- expect(wrapper.find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('11月')); // 年份份减少
97
-
98
- wrapper.find('.hi-datepicker__header-btns').at(0).childAt(0).simulate('click');
99
- expect(wrapper.find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2018年')); // 年份增加
100
-
101
- wrapper.find('.hi-datepicker__header-btns').at(1).childAt(1).simulate('click');
102
- expect(wrapper.find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2019年')); // 日期面板中点击header 事件
103
-
104
- wrapper.find('.hi-datepicker__header-text').simulate('click');
105
- expect(wrapper.find('.hi-datepicker__calender-container--year')).toHaveLength(1);
106
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat(2019, "]:not(.prev):not(.next)")).hasClass('current')).toBeTruthy();
107
- wrapper.find(".hi-datepicker__panel--left td[value=".concat(2018, "]:not(.prev):not(.next)")).simulate('click');
108
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat(11, "]:not(.prev):not(.next)")).hasClass('current')).toBeTruthy();
109
- wrapper.find(".hi-datepicker__panel--left td[value=".concat(11, "]:not(.prev):not(.next)")).simulate('click');
110
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat(15, "]:not(.prev):not(.next)")).hasClass('current')).toBeTruthy(); // 英文 header
111
-
112
- wrapper.setProps({
113
- showPanel: false,
114
- locale: 'en-US'
115
- });
116
- wrapper.find('input').at(0).simulate('focus');
117
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.not.stringContaining('年'));
118
- });
119
- it('altCalendarPreset', function () {
120
- var mockTime = new Date('2020-01-14');
121
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
122
- value: mockTime,
123
- altCalendarPreset: "zh-CN"
124
- }));
125
- setTimeout(function () {
126
- wrapper.find('input').simulate('focus');
127
- expect(wrapper.find('.hi-datepicker__cell--large')).toHaveLength(42);
128
- expect(wrapper.find('.hi-datepicker__text--showLunar[value=14]').text()).toEqual('二十');
129
- }, 500);
130
- });
131
- it('altCalendar', function () {
132
- var mockTime = new Date('2020-01-14');
133
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
134
- value: mockTime,
135
- altCalendar: [{
136
- date: '2020/1/14',
137
- text: '测试日'
138
- }]
139
- }));
140
- wrapper.find('input').simulate('focus');
141
- expect(wrapper.find('.hi-datepicker__text--showLunar[value=14]').text()).toEqual('测试日');
142
- });
143
- it('dateMarkPreset', function () {
144
- var mockTime = new Date('2020-10-01');
145
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
146
- value: mockTime,
147
- dateMarkPreset: "zh-CN"
148
- }));
149
- setTimeout(function () {
150
- wrapper.find('input').simulate('focus');
151
- expect(wrapper.find('.current').find('span').last().text()).toEqual('休');
152
- }, 500);
153
- });
154
- it('dateMarkRender', function () {
155
- var mockTime = new Date('2020-1-14');
156
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
157
- value: mockTime,
158
- dateMarkPreset: "zh-CN",
159
- dateMarkRender: function dateMarkRender(currentDate) {
160
- var date = _index["default"].format(currentDate, 'yyyy/M/D');
161
-
162
- if (date == '2020/1/14') {
163
- return /*#__PURE__*/_react["default"].createElement("span", {
164
- style: {
165
- color: '#fa0'
166
- }
167
- }, "\u73ED");
168
- } else {
169
- return null;
170
- }
171
- }
172
- }));
173
- wrapper.find('input').simulate('focus');
174
- expect(wrapper.find('.current').find('span').last().text()).toEqual('班');
175
- });
176
- it('week', function () {
177
- var callback = jest.fn();
178
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
179
- type: "week",
180
- onChange: callback
181
- }));
182
- expect(wrapper.find('input').getDOMNode().getAttribute('value')).toEqual(''); // expect(wrapper.find('input').getDOMNode().getAttribute('placeholder')).toEqual('请选择日期')
183
-
184
- wrapper.find('input').simulate('focus');
185
- expect(wrapper.find("td[value=".concat(realCurrentDay, "]:not(.prev):not(.next)")).hasClass('in-range')).toBeTruthy();
186
- expect(wrapper.find('.hi-datepicker__row--current-week').childAt(0).hasClass('range-se')).toBeTruthy();
187
- expect(wrapper.find('.hi-datepicker__row--current-week').childAt(6).hasClass('range-se')).toBeTruthy(); // TODO: week 时 传入字符串不能被正确解析
188
-
189
- var prevWeekDate = (0, _dateUtil.subDays)(mockDate, 7);
190
- wrapper.setProps({
191
- value: prevWeekDate
192
- });
193
- expect(wrapper.find("td[value=".concat((0, _dateUtil.getDate)(prevWeekDate), "]")).hasClass('in-range')).toBeTruthy(); // 点击
194
-
195
- wrapper.find('.hi-datepicker__calender').simulate('click', {
196
- target: wrapper.find("td[value=".concat((0, _dateUtil.getDate)(mockDate), "]")).getDOMNode()
197
- });
198
- expect(callback).toHaveBeenCalled();
199
- wrapper.find('input').simulate('focus');
200
- expect(wrapper.find("td[value=".concat((0, _dateUtil.getDate)(mockDate), "]")).hasClass('in-range')).toBeTruthy();
201
- });
202
- it('year', function () {
203
- var callback = jest.fn();
204
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
205
- type: "year",
206
- onChange: callback,
207
- value: mockDate
208
- }));
209
- expect(wrapper.find('input').getDOMNode().getAttribute('value')).toEqual('2019');
210
- expect(wrapper.find('input').getDOMNode().getAttribute('placeholder')).toEqual('请选择年');
211
- wrapper.find('input').simulate('focus');
212
- expect(wrapper.find("td[value=".concat(mockCurrentYear, "]")).hasClass('current')).toBeTruthy();
213
- wrapper.setProps({
214
- value: mockCurrentYear - 1 + ''
215
- });
216
- expect(wrapper.find("td[value=".concat(mockCurrentYear - 1 + '', "]")).hasClass('current')).toBeTruthy();
217
- wrapper.find('.hi-datepicker__calender').simulate('click', {
218
- target: wrapper.find("td[value=".concat(mockCurrentYear, "]")).getDOMNode()
219
- });
220
- expect(callback).toHaveBeenCalled(); // expect(callback).toHaveBeenCalledWith(new Date(), mockCurrentYear)
221
-
222
- wrapper.find('input').simulate('focus');
223
- expect(wrapper.find("td[value=".concat(mockCurrentYear, "]")).hasClass('current')).toBeTruthy();
224
- wrapper.find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
225
- expect(wrapper.find("td[value=".concat(mockCurrentYear + 10 + '', "]")).hasClass('current')).toBeTruthy();
226
- });
227
- it('month', function () {
228
- var callback = jest.fn();
229
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
230
- type: "month",
231
- onChange: callback,
232
- value: mockDate
233
- }));
234
- expect(wrapper.find('input').getDOMNode().getAttribute('value')).toEqual('2019-11');
235
- expect(wrapper.find('input').getDOMNode().getAttribute('placeholder')).toEqual('请选择月');
236
- wrapper.find('input').simulate('focus');
237
- expect(wrapper.find("td[value=".concat(mockCurrentMonth + 1 + '', "]")).hasClass('current')).toBeFalsy();
238
- wrapper.setProps({
239
- value: (0, _dateUtil.subMonths)(mockDate, 1)
240
- });
241
- expect(wrapper.find("td[value=".concat(mockCurrentMonth - 1 + '', "]")).hasClass('current')).toBeTruthy();
242
- wrapper.find('.hi-datepicker__calender').simulate('click', {
243
- target: wrapper.find("td[value=".concat(mockCurrentMonth, "]")).getDOMNode()
244
- });
245
- expect(callback).toHaveBeenCalled(); // // expect(callback).toHaveBeenCalledWith(new Date(), mockCurrentYear)
246
-
247
- wrapper.find('input').simulate('focus');
248
- expect(wrapper.find("td[value=".concat(mockCurrentMonth, "]")).hasClass('current')).toBeTruthy();
249
- wrapper.find('.hi-datepicker__header-text').simulate('click');
250
- expect(wrapper.find('td').first().text()).toEqual('2015');
251
- expect(wrapper.find('td').last().text()).toEqual('2026');
252
- });
253
- it('daterange', function () {
254
- var callback = jest.fn();
255
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
256
- type: "daterange",
257
- onChange: callback
258
- }));
259
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('value')).toEqual('');
260
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('placeholder')).toEqual('开始日期');
261
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('value')).toEqual('');
262
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('placeholder')).toEqual('结束日期');
263
- wrapper.find('input').first().simulate('focus');
264
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat(realCurrentDay, "]:not(.prev):not(.next)")).hasClass('today')).toBeTruthy();
265
- wrapper.find('.hi-datepicker__header-text').first().simulate('click');
266
- var year = new Date().getFullYear();
267
- expect(wrapper.find('.hi-datepicker__header-text').first().text()).toEqual("".concat(year - 4, "~").concat(year + 7));
268
- wrapper.find(".hi-datepicker__panel--left td[value=".concat(year + 1, "]:not(.prev):not(.next)")).simulate('click');
269
- expect(wrapper.find('.hi-datepicker__calender-container--month')).toHaveLength(1);
270
- wrapper.find(".hi-datepicker__panel--left td[value=12]:not(.prev):not(.next)").simulate('click');
271
- expect(wrapper.find('.hi-datepicker__header-text').first().text()).toEqual("".concat(year + 1, "\u5E74 12\u6708")); // value 为 Date 实例的情况
272
-
273
- wrapper.setProps({
274
- value: mockDate
275
- });
276
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('value')).toEqual('2019-11-20');
277
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('value')).toEqual('2019-11-20');
278
- wrapper.find(_DatePicker.DatePicker).setState({
279
- showPanel: false
280
- });
281
- wrapper.find('input').first().simulate('focus');
282
- expect(wrapper.find(".hi-datepicker__panel--left td[value=20]:not(.prev):not(.next)").hasClass('range-se')).toBeTruthy(); // value 为 {start: Date, end: Date}
283
-
284
- var rangeEnd = (0, _dateUtil.addDays)(mockDate, 30);
285
- wrapper.setProps({
286
- value: {
287
- start: mockDate,
288
- end: rangeEnd
289
- }
290
- });
291
- wrapper.find(_DatePicker.DatePicker).setState({
292
- showPanel: false
293
- });
294
- wrapper.find('input').first().simulate('focus');
295
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat(mockCurrentDay, "]:not(.prev):not(.next)")).hasClass('range-se')).toBeTruthy();
296
- expect(wrapper.find(".hi-datepicker__panel--right td[value=".concat((0, _dateUtil.getDate)(rangeEnd), "]:not(.prev):not(.next)")).hasClass('range-se')).toBeTruthy();
297
- wrapper.setProps({
298
- disabled: true
299
- });
300
- expect(wrapper.find('.hi-datepicker__input').hasClass('hi-datepicker__input--disabled'));
301
- wrapper.setProps({
302
- disabled: false
303
- }); // 左侧日历 header 点击事件
304
- // 月份减少
305
-
306
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(0).childAt(1).simulate('click');
307
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('10月')); // 月份增加
308
-
309
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
310
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('11月')); // 月份增加至右侧面板月份
311
-
312
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
313
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('11月')); // 年份增加
314
-
315
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(1).childAt(1).simulate('click');
316
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2019年')); // // 年份减少
317
-
318
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(0).childAt(0).simulate('click');
319
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2018年')); // 右侧日历 header 点击事件
320
- // 年份减少
321
-
322
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(0).childAt(0).simulate('click');
323
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2018年')); // 再次点击年份减少,不能小于左侧年份
324
-
325
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(0).childAt(0).simulate('click');
326
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2018年')); // 右侧月份减少
327
-
328
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(0).childAt(1).simulate('click');
329
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('12月')); // 先加后减(右侧月份)
330
-
331
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
332
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(0).childAt(1).simulate('click');
333
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
334
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringMatching(/2019年\s+1月/)); // 年份增加
335
-
336
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(1).childAt(1).simulate('click');
337
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2020年')); // Pick
338
-
339
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__calender').simulate('click', {
340
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat(11, "]:not(.prev):not(.next)")).getDOMNode()
341
- });
342
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat(11, "]:not(.prev):not(.next)")).hasClass('range-se')).toBeTruthy();
343
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__calender').simulate('click', {
344
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat(12, "]:not(.prev):not(.next)")).getDOMNode()
345
- });
346
- expect(wrapper.find('.hi-datepicker__panel')).toHaveLength(0);
347
- expect(callback).toHaveBeenCalled();
348
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('value')).toEqual('2018-11-11');
349
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('value')).toEqual('2020-01-12');
350
- wrapper.setProps({
351
- value: mockDate
352
- });
353
- wrapper.find('input').first().simulate('focus');
354
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__calender').simulate('click', {
355
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockDate), "]:not(.prev):not(.next)")).getDOMNode()
356
- });
357
- wrapper.find('.hi-datepicker__calender').at(0).simulate('mouseMove', {
358
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockDate) + 1, "]:not(.prev):not(.next)")).find('span').getDOMNode()
359
- });
360
- wrapper.find('.hi-datepicker__calender').at(0).simulate('mouseMove', {
361
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockDate) + 2, "]:not(.prev):not(.next)")).find('span').getDOMNode()
362
- });
363
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockDate) + 1, "]:not(.prev):not(.next)")).hasClass('in-range')).toBeTruthy(); // 英文 header
364
-
365
- wrapper.setProps({
366
- showPanel: false,
367
- locale: 'en-US'
368
- });
369
- wrapper.find('input').at(0).simulate('focus');
370
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.not.stringContaining('年'));
371
- });
372
- it('weekrange', function () {
373
- var callback = jest.fn();
374
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
375
- type: "weekrange",
376
- onChange: callback
377
- }));
378
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('value')).toEqual('');
379
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('placeholder')).toEqual('开始周');
380
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('value')).toEqual('');
381
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('placeholder')).toEqual('结束周');
382
- wrapper.find('input').first().simulate('focus');
383
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat(realCurrentDay, "]:not(.prev):not(.next)")).hasClass('today')).toBeTruthy();
384
- wrapper.find('.hi-datepicker__header-text').first().simulate('click');
385
- var year = new Date().getFullYear();
386
- expect(wrapper.find('.hi-datepicker__header-text').first().text()).toEqual("".concat(year - 4, "~").concat(year + 7));
387
- wrapper.find(".hi-datepicker__panel--left td[value=".concat(year + 1, "]:not(.prev):not(.next)")).simulate('click');
388
- expect(wrapper.find('.hi-datepicker__calender-container--month')).toHaveLength(1);
389
- wrapper.find(".hi-datepicker__panel--left td[value=12]:not(.prev):not(.next)").simulate('click');
390
- expect(wrapper.find('.hi-datepicker__header-text').first().text()).toEqual("".concat(year + 1, "\u5E74 12\u6708")); // value 为 Date 实例的情况
391
-
392
- wrapper.setProps({
393
- value: mockDate
394
- });
395
- wrapper.find(_DatePicker.DatePicker).setState({
396
- showPanel: false
397
- });
398
- wrapper.find('input').first().simulate('focus');
399
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)((0, _dateUtil.startOfWeek)(mockDate)), "]:not(.prev):not(.next)")).hasClass('range-se')).toBeTruthy();
400
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)((0, _dateUtil.endOfWeek)(mockDate)), "]:not(.prev):not(.next)")).hasClass('range-se')).toBeTruthy(); // value 为 {start: Date, end: Date}
401
-
402
- wrapper.find(_DatePicker.DatePicker).setState({
403
- showPanel: false
404
- });
405
- var rangeEnd = (0, _dateUtil.addDays)(mockDate, 30);
406
- wrapper.setProps({
407
- value: {
408
- start: mockDate,
409
- end: rangeEnd
410
- }
411
- });
412
- wrapper.find('input').first().simulate('focus');
413
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat(mockCurrentDay, "]:not(.prev):not(.next)")).hasClass('range-se')).toBeTruthy();
414
- expect(wrapper.find(".hi-datepicker__panel--right td[value=".concat((0, _dateUtil.getDate)(rangeEnd), "]:not(.prev):not(.next)")).hasClass('range-se')).toBeTruthy(); // 左侧日历 header 点击事件
415
- // 月份减少
416
-
417
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(0).childAt(1).simulate('click');
418
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('10月')); // 月份增加
419
-
420
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
421
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('11月')); // 月份增加至右侧面板月份
422
-
423
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
424
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('11月')); // 年份增加
425
-
426
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(1).childAt(1).simulate('click');
427
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2019年')); // // 年份减少
428
-
429
- wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-btns').at(0).childAt(0).simulate('click');
430
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2018年')); // 右侧日历 header 点击事件
431
- // 年份减少
432
-
433
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(0).childAt(0).simulate('click');
434
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2018年')); // 再次点击年份减少,不能小于左侧年份
435
-
436
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(0).childAt(0).simulate('click');
437
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2018年')); // 右侧月份减少
438
-
439
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(0).childAt(1).simulate('click');
440
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('12月')); // 先加后减(右侧月份)
441
-
442
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
443
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(0).childAt(1).simulate('click');
444
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(1).childAt(0).simulate('click');
445
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringMatching(/2019年\s+1月/)); // 年份增加
446
-
447
- wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-btns').at(1).childAt(1).simulate('click');
448
- expect(wrapper.find('.hi-datepicker__panel--right').find('.hi-datepicker__header-text').text()).toEqual(expect.stringContaining('2020年'));
449
- wrapper.find('.hi-datepicker__calender').at(0).simulate('click', {
450
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockDate), "]:not(.prev):not(.next)")).getDOMNode()
451
- });
452
- wrapper.find('.hi-datepicker__calender').at(0).simulate('mouseMove', {
453
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockDate) + 1, "]:not(.prev):not(.next)")).find('span').getDOMNode()
454
- });
455
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockDate) + 1, "]:not(.prev):not(.next)")).hasClass('in-range')).toBeTruthy();
456
- wrapper.find('.hi-datepicker__calender').at(1).simulate('click', {
457
- target: wrapper.find(".hi-datepicker__panel--right td[value=".concat((0, _dateUtil.getDate)(mockDate), "]:not(.prev):not(.next)")).getDOMNode()
458
- });
459
- expect(callback).toHaveBeenCalled(); // 英文 header
460
-
461
- wrapper.setProps({
462
- showPanel: false,
463
- locale: 'en-US'
464
- });
465
- wrapper.find('input').at(0).simulate('focus');
466
- expect(wrapper.find('.hi-datepicker__panel--left').find('.hi-datepicker__header-text').text()).toEqual(expect.not.stringContaining('年'));
467
- });
468
- it('timeperiod', function () {
469
- var callback = jest.fn();
470
- jest.useFakeTimers();
471
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
472
- type: "timeperiod",
473
- onChange: callback
474
- }));
475
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('value')).toEqual('');
476
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('placeholder')).toEqual('开始日期时间');
477
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('value')).toEqual('');
478
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('placeholder')).toEqual('结束日期时间');
479
- wrapper.find('input').first().simulate('focus');
480
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat(realCurrentDay, "]:not(.prev):not(.next)")).hasClass('current')).toBeTruthy(); // value 为 Date 实例的情况
481
-
482
- wrapper.setProps({
483
- value: mockDate
484
- });
485
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('value')).toEqual('2019-11-20 12:00:00');
486
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('value')).toEqual('2019-11-20 16:00:00');
487
- wrapper.find(_DatePicker.DatePicker).setState({
488
- showPanel: false
489
- });
490
- wrapper.find('input').first().simulate('focus');
491
- expect(wrapper.find(".hi-datepicker__panel--left td[value=20]:not(.prev):not(.next)").hasClass('current')).toBeTruthy();
492
- expect(wrapper.find('.hi-datepicker__period-item').at(3).hasClass('hi-datepicker__period-item--active')).toBeTruthy(); // value 为 {start: Date, end: Date}
493
-
494
- var rangeEnd = (0, _dateUtil.addHours)(mockDate, 4);
495
- wrapper.setProps({
496
- value: {
497
- start: mockDate,
498
- end: rangeEnd
499
- }
500
- });
501
- wrapper.find(_DatePicker.DatePicker).setState({
502
- showPanel: false
503
- });
504
- wrapper.find('input').first().simulate('focus');
505
- expect(wrapper.find(".hi-datepicker__panel--left td[value=20]:not(.prev):not(.next)").hasClass('current')).toBeTruthy();
506
- expect(wrapper.find('.hi-datepicker__period-item').at(3).hasClass('hi-datepicker__period-item--active')).toBeTruthy();
507
- wrapper.find('.hi-datepicker__calender').simulate('click', {
508
- target: wrapper.find(".hi-datepicker__panel--left td[value=14]:not(.prev):not(.next)").getDOMNode()
509
- });
510
- wrapper.find('.hi-datepicker__period-item').at(3).simulate('click');
511
- document.body.click();
512
- expect(callback).toHaveBeenCalled();
513
- wrapper.find('input').first().simulate('focus');
514
- wrapper.setProps({
515
- timeInterval: 120
516
- });
517
- expect(wrapper.find('.hi-datepicker__period-item')).toHaveLength(12);
518
- wrapper.setProps({
519
- timeInterval: 30
520
- });
521
- expect(wrapper.find('.hi-datepicker__period-item')).toHaveLength(48);
522
- jest.runAllTimers();
523
- });
524
- it('minDate&maxDate', function () {
525
- var callback = jest.fn();
526
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_index["default"], {
527
- type: "date",
528
- min: mockMinDate,
529
- onChange: callback,
530
- value: mockDate
531
- }), /*#__PURE__*/_react["default"].createElement(_index["default"], {
532
- type: "date",
533
- max: mockMaxDate,
534
- onChange: callback,
535
- value: mockDate
536
- }), /*#__PURE__*/_react["default"].createElement(_index["default"], {
537
- type: "date",
538
- min: mockMinDate,
539
- max: mockMaxDate,
540
- onChange: callback,
541
- value: mockDate
542
- })));
543
- wrapper.find('input').first().simulate('focus');
544
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockMinDate) - 1, "]:not(.prev):not(.next)")).hasClass('disabled')).toBeTruthy();
545
- wrapper.find('.hi-datepicker__calender').simulate('click', {
546
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockMinDate) - 1, "]:not(.prev):not(.next)")).getDOMNode()
547
- });
548
- expect(callback).not.toHaveBeenCalled();
549
- wrapper.find('input').at(1).simulate('focus');
550
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockMaxDate) + 1, "]:not(.prev):not(.next)")).at(1).hasClass('disabled')).toBeTruthy();
551
- wrapper.find('.hi-datepicker__calender').at(1).simulate('click', {
552
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockMaxDate) + 1, "]:not(.prev):not(.next)")).at(1).getDOMNode()
553
- });
554
- expect(callback).not.toHaveBeenCalled();
555
- wrapper.find('input').at(2).simulate('focus');
556
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockMinDate) - 1, "]:not(.prev):not(.next)")).at(2).hasClass('disabled')).toBeTruthy();
557
- expect(wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockMaxDate) + 1, "]:not(.prev):not(.next)")).at(2).hasClass('disabled')).toBeTruthy();
558
- wrapper.find('.hi-datepicker__calender').at(2).simulate('click', {
559
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockMinDate) - 1, "]:not(.prev):not(.next)")).at(2).getDOMNode()
560
- });
561
- expect(callback).not.toHaveBeenCalled();
562
- wrapper.find('.hi-datepicker__calender').at(2).simulate('click', {
563
- target: wrapper.find(".hi-datepicker__panel--left td[value=".concat((0, _dateUtil.getDate)(mockMaxDate) + 1, "]:not(.prev):not(.next)")).at(2).getDOMNode()
564
- });
565
- expect(callback).not.toHaveBeenCalled();
566
- });
567
- it('disabled', function () {
568
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
569
- type: "date",
570
- disabled: true
571
- }));
572
- expect(wrapper.find('.hi-datepicker__input--disabled')).toHaveLength(1);
573
- wrapper.setProps({
574
- disabled: false
575
- });
576
- expect(wrapper.find('.hi-datepicker__input--disabled')).toHaveLength(0);
577
- });
578
- it('clearable', function () {
579
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
580
- type: "date",
581
- value: mockDate
582
- }));
583
- wrapper.find('input').simulate('focus');
584
- expect(wrapper.find('.hi-datepicker__input-icon').hasClass('clear')).toBeTruthy();
585
- wrapper.find('.hi-datepicker__input-icon').simulate('click');
586
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('value')).toEqual('');
587
- wrapper.setProps({
588
- clearable: false
589
- });
590
- wrapper.find('input').simulate('focus');
591
- expect(wrapper.find('.hi-datepicker__input-icon').hasClass('clear')).toBeFalsy();
592
- expect(wrapper.find('.hi-datepicker__input-icon').hasClass('icon-date')).toBeTruthy();
593
- });
594
- it('shortcuts', function () {
595
- var callback = jest.fn();
596
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
597
- type: "daterange",
598
- onChange: callback,
599
- value: mockDate,
600
- shortcuts: ['近一周', '近一月', '近三月', '近一年']
601
- }));
602
- wrapper.find('input').first().simulate('focus');
603
- expect(wrapper.find('.hi-datepicker__shortcuts')).toHaveLength(1);
604
- wrapper.find('.hi-datepicker__shortcuts').childAt(0).simulate('click', {
605
- target: {
606
- innerText: '近一周'
607
- }
608
- });
609
- expect(callback).toHaveBeenCalled();
610
- wrapper.find('input').first().simulate('focus');
611
- wrapper.find('.hi-datepicker__shortcuts').childAt(1).simulate('click', {
612
- target: {
613
- innerText: '近一月'
614
- }
615
- });
616
- expect(callback).toHaveBeenCalled();
617
- wrapper.find('input').first().simulate('focus');
618
- wrapper.find('.hi-datepicker__shortcuts').childAt(2).simulate('click', {
619
- target: {
620
- innerText: '近三月'
621
- }
622
- });
623
- expect(callback).toHaveBeenCalled();
624
- wrapper.find('input').first().simulate('focus');
625
- wrapper.find('.hi-datepicker__shortcuts').childAt(3).simulate('click', {
626
- target: {
627
- innerText: '近一年'
628
- }
629
- });
630
- expect(callback).toHaveBeenCalled();
631
- });
632
- it('placeholder', function () {
633
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_index["default"], {
634
- type: "daterange"
635
- }), /*#__PURE__*/_react["default"].createElement(_index["default"], {
636
- type: "daterange",
637
- placeholder: "\u8BF7\u9009\u62E9"
638
- }), /*#__PURE__*/_react["default"].createElement(_index["default"], {
639
- type: "daterange",
640
- placeholder: ['请选择']
641
- }), /*#__PURE__*/_react["default"].createElement(_index["default"], {
642
- type: "daterange",
643
- placeholder: ['请选择开始日期', '请选择结束日期']
644
- })));
645
- expect(wrapper.find('input').at(0).getDOMNode().getAttribute('placeholder')).toEqual('开始日期');
646
- expect(wrapper.find('input').at(1).getDOMNode().getAttribute('placeholder')).toEqual('结束日期');
647
- expect(wrapper.find('input').at(2).getDOMNode().getAttribute('placeholder')).toEqual('请选择');
648
- expect(wrapper.find('input').at(3).getDOMNode().getAttribute('placeholder')).toEqual('请选择');
649
- expect(wrapper.find('input').at(4).getDOMNode().getAttribute('placeholder')).toEqual('请选择');
650
- expect(wrapper.find('input').at(5).getDOMNode().getAttribute('placeholder')).toEqual('请选择');
651
- expect(wrapper.find('input').at(6).getDOMNode().getAttribute('placeholder')).toEqual('请选择开始日期');
652
- expect(wrapper.find('input').at(7).getDOMNode().getAttribute('placeholder')).toEqual('请选择结束日期');
653
- });
654
- it('showTime', function () {
655
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_index["default"], {
656
- type: "date",
657
- showTime: true
658
- }), /*#__PURE__*/_react["default"].createElement(_index["default"], {
659
- type: "daterange",
660
- showTime: true
661
- })));
662
- expect(wrapper.find('.hi-datepicker__input-icon').at(0).hasClass('icon-time')).toBeTruthy();
663
- expect(wrapper.find('.hi-datepicker__input-icon').at(1).hasClass('icon-time')).toBeTruthy();
664
- wrapper.find('input').at(0).simulate('focus');
665
- expect(wrapper.find('.hi-timepicker')).toHaveLength(1);
666
- wrapper.find('input').at(1).simulate('focus');
667
- expect(wrapper.find('.hi-datepicker__footer')).toHaveLength(1);
668
- wrapper.find('.hi-datepicker__footer').simulate('click');
669
- expect(wrapper.find('.hi-datepicker__mask')).toHaveLength(1);
670
- expect(wrapper.find('.hi-timepicker--timerange')).toHaveLength(1);
671
- wrapper.find('.hi-timepicker__list').at(0).simulate('click', {
672
- type: 'hours',
673
- target: wrapper.find('.hi-timepicker__list').at(0).find('.hi-timepicker__item').at(17).getDOMNode()
674
- }); // TODO: 验证日期范围下的时间更改结果
675
- // expect(wrapper.find('.hi-datepicker__time-text').text()).toEqual(expect.stringMatching(/00:\s+/))
676
-
677
- wrapper.find('.hi-datepicker__mask').simulate('click');
678
- expect(wrapper.find('.hi-datepicker__mask')).toHaveLength(0);
679
- expect(wrapper.find('.hi-timepicker--timerange')).toHaveLength(0);
680
- });
681
- it('weekOffset', function () {
682
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
683
- type: "week",
684
- weekOffset: 1
685
- }));
686
- wrapper.find('input').simulate('focus');
687
- expect(wrapper.find('th').at(0).text()).toEqual('一');
688
- });
689
- it('time', function () {
690
- var callback = jest.fn();
691
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_TimePicker["default"], {
692
- onChange: callback
693
- }));
694
- wrapper.find('input').simulate('focus');
695
- document.body.click();
696
- expect(callback).toHaveBeenCalled(); // 禁用小时
697
-
698
- wrapper.setProps({
699
- disabledHours: [2, 3, 4, 5, 6, 7]
700
- });
701
- wrapper.find('input').simulate('focus');
702
- expect(wrapper.find('.hi-timepicker__list').at(0).find('li[value=2]').hasClass('hi-timepicker__item--disabled')).toBeTruthy();
703
- wrapper.setProps({
704
- disabledHours: function disabledHours() {
705
- return [3];
706
- }
707
- });
708
- expect(wrapper.find('.hi-timepicker__list').at(0).find('li[value=2]').hasClass('hi-timepicker__item--disabled')).toBeFalsy();
709
- expect(wrapper.find('.hi-timepicker__list').at(0).find('li[value=3]').hasClass('hi-timepicker__item--disabled')).toBeTruthy();
710
- wrapper.find('.hi-timepicker__list').at(0).find('li[value=3]').simulate('click');
711
- wrapper.setProps({
712
- disabledHours: function disabledHours() {
713
- return null;
714
- }
715
- });
716
- expect(wrapper.find('.hi-timepicker__list').at(0).children('.hi-timepicker__item--disabled')).toHaveLength(0); // 禁用分钟
717
-
718
- wrapper.setProps({
719
- disabledHours: [2],
720
- disabledMinutes: [2]
721
- });
722
- expect(wrapper.find('.hi-timepicker__list').at(1).find('li[value=2]').hasClass('hi-timepicker__item--disabled')).toBeTruthy();
723
- wrapper.setProps({
724
- disabledMinutes: function disabledMinutes() {
725
- return [3];
726
- }
727
- });
728
- expect(wrapper.find('.hi-timepicker__list').at(1).find('li[value=2]').hasClass('hi-timepicker__item--disabled')).toBeFalsy();
729
- expect(wrapper.find('.hi-timepicker__list').at(1).find('li[value=3]').hasClass('hi-timepicker__item--disabled')).toBeTruthy();
730
- wrapper.find('.hi-timepicker__list').at(1).find('li[value=3]').simulate('click');
731
- wrapper.setProps({
732
- disabledMinutes: function disabledMinutes() {
733
- return null;
734
- }
735
- });
736
- expect(wrapper.find('.hi-timepicker__list').at(1).children('.hi-timepicker__item--disabled')).toHaveLength(0); // 禁用分钟
737
-
738
- wrapper.setProps({
739
- disabledHours: [2],
740
- disabledMinutes: [2],
741
- disabledSeconds: [2]
742
- });
743
- expect(wrapper.find('.hi-timepicker__list').at(2).find('li[value=2]').hasClass('hi-timepicker__item--disabled')).toBeTruthy();
744
- wrapper.setProps({
745
- disabledSeconds: function disabledSeconds() {
746
- return [3];
747
- }
748
- });
749
- expect(wrapper.find('.hi-timepicker__list').at(2).find('li[value=2]').hasClass('hi-timepicker__item--disabled')).toBeFalsy();
750
- expect(wrapper.find('.hi-timepicker__list').at(2).find('li[value=3]').hasClass('hi-timepicker__item--disabled')).toBeTruthy();
751
- wrapper.find('.hi-timepicker__list').at(2).find('li[value=3]').simulate('click');
752
- wrapper.setProps({
753
- disabledSeconds: function disabledSeconds() {
754
- return null;
755
- }
756
- });
757
- expect(wrapper.find('.hi-timepicker__list').at(2).children('.hi-timepicker__item--disabled')).toHaveLength(0);
758
- });
759
- it('timerange', function () {
760
- var callback = jest.fn();
761
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_TimePicker["default"], {
762
- type: "timerange",
763
- onChange: callback
764
- }));
765
- wrapper.find('input').at(0).simulate('focus');
766
- wrapper.find('.hi-timepicker__list').at(0).simulate('click', {
767
- target: wrapper.find('.hi-timepicker__list').at(0).find('li[value=2]').getDOMNode()
768
- });
769
- wrapper.find('.hi-timepicker__list').at(3).simulate('click', {
770
- target: wrapper.find('.hi-timepicker__list').at(3).find('li[value=2]').getDOMNode()
771
- });
772
- });
773
- });
774
- describe('branches', function () {
775
- it('clickOutSide', function () {
776
- var callback = jest.fn();
777
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
778
- onChange: callback,
779
- value: mockDate
780
- }));
781
- wrapper.find('input').simulate('focus');
782
- wrapper.find('.hi-datepicker__input-icon').simulate('click');
783
- expect(callback).toHaveBeenCalled();
784
- });
785
- it('inputOnChange', function () {
786
- var callback = jest.fn(); // TODO: type === daterange 时,无法通过编辑输入框更改时间
787
-
788
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
789
- type: "daterange",
790
- onChange: callback
791
- }));
792
- wrapper.find('input').at(0).simulate('focus');
793
- wrapper.find('input').at(0).simulate('change', {
794
- target: {
795
- value: '2019-11-14'
796
- }
797
- });
798
- wrapper.find('input').at(1).simulate('change', {
799
- target: {
800
- value: '2019-11-15'
801
- }
802
- }); // expect(wrapper.find(`.hi-datepicker__panel--left td[value=${14}]:not(.prev):not(.next)`).hasClass('current')).toBeTruthy()
803
- });
804
- it('iconClick', function () {
805
- var callback = jest.fn();
806
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index["default"], {
807
- type: "date",
808
- onChange: callback
809
- }));
810
- wrapper.find('.hi-datepicker__input-icon').simulate('click');
811
- expect(wrapper.find('.hi-datepicker__panel')).toHaveLength(1);
812
- wrapper.setProps({
813
- disabled: true
814
- });
815
- wrapper.find(_DatePicker.DatePicker).setState({
816
- showPanel: false
817
- });
818
- wrapper.find('.hi-datepicker__input-icon').simulate('click');
819
- expect(wrapper.find('.hi-datepicker__panel')).toHaveLength(0);
820
- });
821
- it('time-format', function () {
822
- var callback = jest.fn();
823
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_TimePicker["default"], {
824
- onChange: callback,
825
- format: "hh"
826
- }));
827
- wrapper.find('input').simulate('focus');
828
- wrapper.setProps({
829
- value: new Date()
830
- });
831
- expect(wrapper.find('input').getDOMNode().getAttribute('value')).toEqual((0, _dateUtil.dateFormat)(new Date(), 'hh'));
832
- });
833
- it('time-list', function () {
834
- var date = new Date('2019-11-15 12:00:00');
835
- var callback = jest.fn();
836
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_TimePicker["default"], {
837
- onChange: callback,
838
- value: date
839
- }));
840
- jest.useFakeTimers();
841
- wrapper.find('input').simulate('focus');
842
- wrapper.find('.hi-timepicker__list-container').at(0).simulate('mouseEnter');
843
- expect(wrapper.find('.hi-timepicker__page-turn')).toHaveLength(2);
844
- wrapper.find('.hi-timepicker__page-turn').at(0).simulate('click');
845
- expect(wrapper.find('.hi-timepicker__list').at(0).find("li[value=".concat(date.getHours() - 1, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy();
846
- wrapper.find('.hi-timepicker__page-turn').at(1).simulate('click');
847
- expect(wrapper.find('.hi-timepicker__list').at(0).find("li[value=".concat(date.getHours(), "]")).hasClass('hi-timepicker__item--current')).toBeTruthy();
848
- wrapper.setProps({
849
- value: date,
850
- disabledHours: [11, 10, 9]
851
- });
852
- wrapper.find('.hi-timepicker__list-container').at(0).simulate('mouseEnter');
853
- wrapper.find('.hi-timepicker__page-turn').at(0).simulate('click');
854
- expect(wrapper.find('.hi-timepicker__list').at(0).find("li[value=".concat(8, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy();
855
- wrapper.setProps({
856
- value: date
857
- });
858
- wrapper.update(); // 列表点击事件
859
-
860
- wrapper.find('.hi-timepicker__list').at(0).simulate('click');
861
- expect(wrapper.find('.hi-timepicker__list').at(0).find("li[value=".concat(8, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy();
862
- wrapper.find('.hi-timepicker__list').at(0).simulate('click', {
863
- target: wrapper.find('.hi-timepicker__list').at(0).childAt(0).getDOMNode()
864
- });
865
- expect(wrapper.find('.hi-timepicker__list').at(0).find("li[value=".concat(8, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy();
866
- wrapper.find('.hi-timepicker__list-container').at(0).simulate('mouseLeave');
867
- expect(wrapper.find('.hi-timepicker__page-turn')).toHaveLength(0); // 小时 滚动
868
-
869
- wrapper.find('.hi-timepicker__list').at(0).simulate('scroll', {
870
- target: {
871
- scrollTop: 3 * 32
872
- }
873
- });
874
- jest.runAllTimers();
875
- wrapper.update();
876
- expect(wrapper.find('.hi-timepicker__list').at(0).find("li[value=".concat(3, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy(); // 滚动至大于24
877
-
878
- wrapper.find('.hi-timepicker__list').at(0).simulate('scroll', {
879
- target: {
880
- scrollTop: 25 * 32
881
- }
882
- });
883
- jest.runAllTimers();
884
- wrapper.update();
885
- expect(wrapper.find('.hi-timepicker__list').at(0).find("li[value=".concat(3, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy(); // 分钟滚动
886
-
887
- wrapper.find('.hi-timepicker__list').at(1).simulate('scroll', {
888
- target: {
889
- scrollTop: 20 * 32
890
- }
891
- });
892
- jest.runAllTimers();
893
- wrapper.update();
894
- expect(wrapper.find('.hi-timepicker__list').at(1).find("li[value=".concat(20, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy(); // 滚动至大于59
895
-
896
- wrapper.find('.hi-timepicker__list').at(1).simulate('scroll', {
897
- target: {
898
- scrollTop: 60 * 32
899
- }
900
- });
901
- jest.runAllTimers();
902
- wrapper.update();
903
- expect(wrapper.find('.hi-timepicker__list').at(1).find("li[value=".concat(20, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy(); // 秒滚动
904
-
905
- wrapper.find('.hi-timepicker__list').at(2).simulate('scroll', {
906
- target: {
907
- scrollTop: 20 * 32
908
- }
909
- });
910
- jest.runAllTimers();
911
- wrapper.update();
912
- expect(wrapper.find('.hi-timepicker__list').at(2).find("li[value=".concat(20, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy(); // 滚动至>59
913
-
914
- wrapper.find('.hi-timepicker__list').at(2).simulate('scroll', {
915
- target: {
916
- scrollTop: 60 * 32
917
- }
918
- });
919
- jest.runAllTimers();
920
- wrapper.update();
921
- expect(wrapper.find('.hi-timepicker__list').at(2).find("li[value=".concat(20, "]")).hasClass('hi-timepicker__item--current')).toBeTruthy();
922
- });
923
- });
924
- describe('util', function () {
925
- it('nextMonth', function () {
926
- var date = (0, _util.nextMonth)('2019-11-15'); // 0-12
927
-
928
- expect((0, _dateUtil.getMonth)(date)).toEqual(11);
929
- });
930
- it('deconstructDate', function () {
931
- var date = (0, _util.deconstructDate)('2019-11-15 12:00:00'); // 0-12
932
-
933
- expect(date).toEqual({
934
- year: 2019,
935
- month: 11,
936
- day: 15,
937
- week: 46,
938
- hours: 12,
939
- minutes: 0,
940
- seconds: 0,
941
- time: new Date('2019-11-15 12:00:00').getTime()
942
- });
943
- });
944
- it('compatibleFormatString', function () {
945
- var str = (0, _dateUtil.compatibleFormatString)('YYYY-MM-DD');
946
- expect(str).toEqual('yyyy-MM-dd');
947
- });
948
- it('isVaildDate', function () {
949
- var str = (0, _constants.isVaildDate)('');
950
- expect(str).toBeFalsy();
951
- str = (0, _constants.isVaildDate)(new Date());
952
- expect(str).toBeTruthy();
953
- str = (0, _constants.isVaildDate)({
954
- startDate: new Date()
955
- });
956
- expect(str).toBeTruthy();
957
- str = (0, _constants.isVaildDate)(new Date().getTime());
958
- expect(str).toBeTruthy();
959
- });
960
- });
961
- });