From 694daef6eacd7447417e0c0fc86fe0f279cf1773 Mon Sep 17 00:00:00 2001 From: neverland Date: Sun, 20 Aug 2023 18:48:09 +0800 Subject: [PATCH] test: migrate test runner to vitest (#12206) --- .github/workflows/test.yml | 2 +- package.json | 1 + packages/vant-cli/changelog.md | 1 + packages/vant-cli/cjs/jest.config.cjs | 51 - packages/vant-cli/cjs/jest.file-mock.cjs | 1 - packages/vant-cli/cjs/jest.setup.cjs | 1 - packages/vant-cli/cjs/jest.style-mock.js | 1 - packages/vant-cli/cjs/jest.transformer.cjs | 94 - packages/vant-cli/package.json | 6 - packages/vant-cli/src/cli.ts | 33 - packages/vant-cli/src/commands/jest.ts | 47 - packages/vant-cli/src/common/constant.ts | 1 - packages/vant-use/test/utils.spec.ts | 2 +- packages/vant/.eslintrc | 3 + packages/vant/jest.config.js | 10 - packages/vant/package.json | 18 +- .../test/__snapshots__/index.spec.ts.snap | 7 +- .../test/__snapshots__/index.spec.ts.snap | 37 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 198 +- .../test/__snapshots__/demo.spec.ts.snap | 128 +- .../test/__snapshots__/index.spec.ts.snap | 7 +- .../vant/src/action-bar/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 87 +- .../test/__snapshots__/demo.spec.ts.snap | 147 +- .../test/__snapshots__/index.spec.ts.snap | 53 +- .../src/action-sheet/test/demo-ssr.spec.ts | 2 +- .../vant/src/action-sheet/test/index.spec.ts | 4 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 138 +- .../test/__snapshots__/demo.spec.ts.snap | 96 +- .../test/__snapshots__/index.spec.ts.snap | 242 +- .../src/address-edit/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 87 +- .../test/__snapshots__/demo.spec.ts.snap | 49 +- .../test/__snapshots__/index.spec.ts.snap | 12 +- .../src/address-list/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 490 +- .../area/test/__snapshots__/demo.spec.ts.snap | 490 +- .../test/__snapshots__/index.spec.ts.snap | 130 +- packages/vant/src/area/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 76 +- .../test/__snapshots__/demo.spec.ts.snap | 144 +- .../test/__snapshots__/ssr.spec.ts.snap | 12 +- .../vant/src/back-top/test/demo-ssr.spec.ts | 2 +- packages/vant/src/back-top/test/index.spec.ts | 2 +- packages/vant/src/back-top/test/ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 107 +- .../test/__snapshots__/demo.spec.ts.snap | 27 +- .../test/__snapshots__/index.spec.ts.snap | 2 +- packages/vant/src/badge/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo.spec.ts.snap | 142 +- .../test/__snapshots__/index.spec.tsx.snap | 179 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 315 +- .../test/__snapshots__/demo.spec.ts.snap | 231 +- .../test/__snapshots__/index.spec.ts.snap | 22 +- .../vant/src/button/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 301 +- .../test/__snapshots__/demo.spec.ts.snap | 203 +- .../test/__snapshots__/index.spec.ts.snap | 1286 ++-- .../test/__snapshots__/prop.spec.ts.snap | 207 +- .../vant/src/calendar/test/demo-ssr.spec.ts | 2 +- packages/vant/src/calendar/test/index.spec.ts | 36 +- packages/vant/src/calendar/test/prop.spec.ts | 4 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 82 +- .../card/test/__snapshots__/demo.spec.ts.snap | 71 +- .../test/__snapshots__/index.spec.ts.snap | 2 +- packages/vant/src/card/test/demo-ssr.spec.ts | 2 +- packages/vant/src/card/test/index.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 187 +- .../test/__snapshots__/demo.spec.ts.snap | 127 +- .../test/__snapshots__/index.spec.ts.snap | 185 +- .../vant/src/cascader/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/index.spec.ts.snap | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 179 +- .../cell/test/__snapshots__/demo.spec.ts.snap | 51 +- .../test/__snapshots__/index.spec.ts.snap | 18 +- packages/vant/src/cell/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 449 +- .../test/__snapshots__/demo.spec.ts.snap | 230 +- .../test/__snapshots__/index.spec.ts.snap | 11 +- .../vant/src/checkbox/test/demo-ssr.spec.ts | 2 +- packages/vant/src/checkbox/test/index.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 261 +- .../test/__snapshots__/demo.spec.ts.snap | 192 +- .../test/__snapshots__/index.spec.ts.snap | 16 +- .../vant/src/circle/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 107 +- .../col/test/__snapshots__/demo.spec.ts.snap | 17 +- .../test/__snapshots__/index.spec.tsx.snap | 52 +- packages/vant/src/col/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 288 +- .../test/__snapshots__/demo.spec.ts.snap | 134 +- .../test/__snapshots__/index.spec.tsx.snap | 11 +- .../vant/src/collapse/test/demo-ssr.spec.ts | 2 +- packages/vant/src/composables/use-id.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 348 +- .../test/__snapshots__/demo.spec.ts.snap | 209 +- .../test/__snapshots__/index.spec.tsx.snap | 7 +- .../src/config-provider/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 56 +- .../test/__snapshots__/demo.spec.ts.snap | 16 +- .../src/contact-card/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 78 +- .../test/__snapshots__/demo.spec.ts.snap | 53 +- .../test/__snapshots__/index.spec.ts.snap | 2 +- .../src/contact-edit/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 91 +- .../test/__snapshots__/demo.spec.ts.snap | 63 +- .../test/__snapshots__/index.spec.ts.snap | 42 +- .../src/contact-list/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/index.spec.tsx.snap | 27 +- .../test/__snapshots__/index.spec.ts.snap | 23 +- .../vant/src/coupon-cell/test/index.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 19 +- .../test/__snapshots__/demo.spec.ts.snap | 31 +- .../test/__snapshots__/index.spec.ts.snap | 1266 ++-- .../src/coupon-list/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 984 +-- .../test/__snapshots__/demo.spec.ts.snap | 984 +-- .../test/__snapshots__/index.spec.ts.snap | 200 +- .../src/date-picker/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 146 +- .../test/__snapshots__/demo.spec.ts.snap | 90 +- .../test/__snapshots__/index.spec.js.snap | 21 +- .../vant/src/dialog/test/demo-ssr.spec.ts | 2 +- packages/vant/src/dialog/test/index.spec.js | 4 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 56 +- .../test/__snapshots__/demo.spec.ts.snap | 56 +- .../vant/src/divider/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 107 +- .../test/__snapshots__/demo.spec.ts.snap | 538 +- .../test/__snapshots__/index.spec.tsx.snap | 1128 +-- .../src/dropdown-menu/test/demo-ssr.spec.ts | 2 +- .../src/dropdown-menu/test/index.spec.tsx | 54 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 707 +- .../test/__snapshots__/demo.spec.ts.snap | 865 ++- .../test/__snapshots__/index.spec.ts.snap | 613 +- packages/vant/src/empty/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 524 +- .../test/__snapshots__/demo.spec.ts.snap | 364 +- .../test/__snapshots__/index.spec.js.snap | 61 +- packages/vant/src/field/test/demo-ssr.spec.ts | 2 +- packages/vant/src/field/test/index.spec.js | 8 +- .../test/__snapshots__/demo.spec.ts.snap | 92 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 50 +- .../test/__snapshots__/demo.spec.ts.snap | 97 +- .../test/__snapshots__/index.spec.tsx.snap | 12 +- .../src/floating-panel/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 749 +- .../form/test/__snapshots__/demo.spec.ts.snap | 443 +- .../test/__snapshots__/events.spec.tsx.snap | 20 +- .../test/__snapshots__/props.spec.tsx.snap | 137 +- packages/vant/src/form/test/demo-ssr.spec.ts | 2 +- packages/vant/src/form/test/events.spec.tsx | 10 +- .../vant/src/form/test/field-type.spec.tsx | 6 +- packages/vant/src/form/test/index.spec.tsx | 4 +- packages/vant/src/form/test/methods.spec.tsx | 10 +- packages/vant/src/form/test/props.spec.tsx | 18 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 636 +- .../grid/test/__snapshots__/demo.spec.ts.snap | 222 +- .../test/__snapshots__/index.spec.jsx.snap | 42 +- packages/vant/src/grid/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 68 +- .../icon/test/__snapshots__/demo.spec.ts.snap | 143 +- .../test/__snapshots__/index.spec.ts.snap | 34 +- packages/vant/src/icon/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/index.spec.ts.snap | 130 +- .../image-preview/test/function-call.spec.ts | 15 +- .../vant/src/image-preview/test/index.spec.ts | 6 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 452 +- .../test/__snapshots__/demo.spec.ts.snap | 346 +- .../test/__snapshots__/index.spec.ts.snap | 26 +- packages/vant/src/image/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 37 +- .../test/__snapshots__/demo.spec.ts.snap | 202 +- .../test/__snapshots__/index.spec.jsx.snap | 277 +- .../vant/src/index-bar/test/demo-ssr.spec.ts | 2 +- .../vant/src/index-bar/test/index.spec.jsx | 8 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 50 +- .../list/test/__snapshots__/demo.spec.ts.snap | 120 +- .../test/__snapshots__/index.spec.jsx.snap | 23 +- packages/vant/src/list/test/demo-ssr.spec.ts | 2 +- packages/vant/src/list/test/index.spec.jsx | 10 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 262 +- .../test/__snapshots__/demo.spec.ts.snap | 232 +- .../vant/src/loading/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 42 +- .../test/__snapshots__/demo.spec.ts.snap | 7 +- .../test/__snapshots__/index.spec.ts.snap | 7 +- .../vant/src/nav-bar/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 183 +- .../test/__snapshots__/demo.spec.ts.snap | 144 +- .../test/__snapshots__/index.spec.tsx.snap | 47 +- .../vant/src/notice-bar/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 155 +- .../test/__snapshots__/demo.spec.ts.snap | 74 +- .../test/__snapshots__/index.spec.ts.snap | 2 +- .../vant/src/notify/test/demo-ssr.spec.ts | 2 +- packages/vant/src/notify/test/index.spec.ts | 4 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 781 +- .../test/__snapshots__/demo.spec.ts.snap | 763 +- .../test/__snapshots__/index.spec.ts.snap | 21 +- .../src/number-keyboard/test/demo-ssr.spec.ts | 2 +- .../src/number-keyboard/test/index.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 16 +- .../test/__snapshots__/demo.spec.ts.snap | 34 +- .../test/__snapshots__/index.spec.tsx.snap | 25 +- .../vant/src/overlay/test/demo-ssr.spec.ts | 2 +- packages/vant/src/overlay/test/index.spec.tsx | 4 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 69 +- .../test/__snapshots__/demo.spec.ts.snap | 59 +- .../test/__snapshots__/index.spec.ts.snap | 12 +- .../vant/src/pagination/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 251 +- .../test/__snapshots__/demo.spec.ts.snap | 140 +- .../test/__snapshots__/index.spec.ts.snap | 2 +- .../src/password-input/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 6476 +++++++++------- .../test/__snapshots__/demo.spec.ts.snap | 6621 +++++++++-------- .../src/picker-group/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/cascade.spec.ts.snap | 73 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 587 +- .../test/__snapshots__/demo.spec.ts.snap | 592 +- .../test/__snapshots__/index.spec.tsx.snap | 61 +- .../test/__snapshots__/slots.spec.ts.snap | 120 +- .../vant/src/picker/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 95 +- .../test/__snapshots__/demo.spec.ts.snap | 67 +- .../test/__snapshots__/index.spec.tsx.snap | 128 +- .../vant/src/popover/test/demo-ssr.spec.ts | 2 +- packages/vant/src/popover/test/index.spec.tsx | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 236 +- .../test/__snapshots__/demo.spec.ts.snap | 377 +- .../test/__snapshots__/index.spec.jsx.snap | 77 +- packages/vant/src/popup/test/demo-ssr.spec.ts | 2 +- packages/vant/src/popup/test/index.spec.jsx | 8 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 121 +- .../test/__snapshots__/demo.spec.ts.snap | 87 +- .../test/__snapshots__/index.spec.ts.snap | 17 +- .../vant/src/progress/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 50 +- .../test/__snapshots__/demo.spec.ts.snap | 97 +- .../test/__snapshots__/index.spec.ts.snap | 104 +- .../src/pull-refresh/test/demo-ssr.spec.ts | 2 +- .../vant/src/pull-refresh/test/index.spec.ts | 4 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 487 +- .../test/__snapshots__/demo.spec.ts.snap | 282 +- packages/vant/src/radio/test/demo-ssr.spec.ts | 2 +- packages/vant/src/radio/test/index.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 1130 +-- .../rate/test/__snapshots__/demo.spec.ts.snap | 798 +- .../test/__snapshots__/index.spec.ts.snap | 86 +- packages/vant/src/rate/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/index.spec.ts.snap | 662 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 137 +- .../test/__snapshots__/demo.spec.ts.snap | 82 +- .../test/__snapshots__/index.spec.ts.snap | 24 +- .../vant/src/search/test/demo-ssr.spec.ts | 2 +- packages/vant/src/search/test/index.spec.ts | 6 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 70 +- .../test/__snapshots__/demo.spec.ts.snap | 118 +- .../test/__snapshots__/index.spec.ts.snap | 46 +- .../src/share-sheet/test/demo-ssr.spec.ts | 2 +- .../vant/src/share-sheet/test/index.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 183 +- .../test/__snapshots__/demo.spec.ts.snap | 148 +- .../test/__snapshots__/index.spec.tsx.snap | 16 +- .../vant/src/sidebar/test/demo-ssr.spec.ts | 2 +- packages/vant/src/sidebar/test/index.spec.tsx | 6 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 78 +- .../test/__snapshots__/demo.spec.ts.snap | 66 +- .../test/__snapshots__/index.spec.ts.snap | 22 +- .../test/__snapshots__/ssr.spec.ts.snap | 21 +- .../{demo-ssr.spec.ts => demo-ssr.skip.ts} | 2 +- .../test/{demo.spec.ts => demo.skip.ts} | 0 .../test/{index.spec.ts => index.skip.ts} | 2 +- .../test/{ssr.spec.ts => ssr.skip.ts} | 2 +- .../test/__snapshots__/index.spec.tsx.snap | 7 +- .../test/__snapshots__/index.spec.tsx.snap | 2 +- .../test/__snapshots__/index.spec.tsx.snap | 12 +- .../test/__snapshots__/index.spec.tsx.snap | 14 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 113 +- .../test/__snapshots__/demo.spec.ts.snap | 76 +- .../test/__snapshots__/index.spec.tsx.snap | 26 +- .../vant/src/skeleton/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 307 +- .../test/__snapshots__/demo.spec.ts.snap | 222 +- .../test/__snapshots__/index.spec.ts.snap | 134 +- .../vant/src/slider/test/demo-ssr.spec.ts | 2 +- packages/vant/src/slider/test/index.spec.ts | 8 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 364 +- .../test/__snapshots__/demo.spec.ts.snap | 255 +- packages/vant/src/space/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 460 +- .../test/__snapshots__/demo.spec.ts.snap | 342 +- .../test/__snapshots__/index.spec.ts.snap | 76 +- .../vant/src/stepper/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 174 +- .../test/__snapshots__/demo.spec.ts.snap | 22 +- .../test/__snapshots__/index.spec.tsx.snap | 22 +- packages/vant/src/steps/test/demo-ssr.spec.ts | 2 +- packages/vant/src/steps/test/index.spec.tsx | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 50 +- .../test/__snapshots__/demo.spec.ts.snap | 30 +- .../test/__snapshots__/index.spec.tsx.snap | 72 +- .../vant/src/sticky/test/demo-ssr.spec.ts | 2 +- packages/vant/src/sticky/test/index.spec.tsx | 27 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 102 +- .../test/__snapshots__/demo.spec.ts.snap | 54 +- .../test/__snapshots__/index.spec.ts.snap | 31 +- .../vant/src/submit-bar/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 86 +- .../test/__snapshots__/demo.spec.ts.snap | 59 +- .../vant/src/swipe-cell/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 157 +- .../test/__snapshots__/demo.spec.ts.snap | 177 +- .../test/__snapshots__/index.spec.jsx.snap | 152 +- packages/vant/src/swipe/test/demo-ssr.spec.ts | 2 +- packages/vant/src/swipe/test/index.spec.jsx | 18 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 124 +- .../test/__snapshots__/demo.spec.ts.snap | 97 +- .../test/__snapshots__/index.spec.ts.snap | 72 +- .../vant/src/switch/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 894 ++- .../tab/test/__snapshots__/demo.spec.ts.snap | 1652 ++-- .../test/__snapshots__/index.spec.tsx.snap | 678 +- .../test/__snapshots__/insert.spec.tsx.snap | 302 +- packages/vant/src/tab/test/demo-ssr.spec.ts | 2 +- packages/vant/src/tab/test/index.spec.tsx | 24 +- packages/vant/src/tab/test/insert.spec.tsx | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 427 +- .../test/__snapshots__/demo.spec.ts.snap | 241 +- .../test/__snapshots__/index.spec.tsx.snap | 12 +- .../vant/src/tabbar/test/demo-ssr.spec.ts | 2 +- packages/vant/src/tabbar/test/index.spec.tsx | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 147 +- .../tag/test/__snapshots__/demo.spec.ts.snap | 117 +- .../tag/test/__snapshots__/index.spec.ts.snap | 22 +- packages/vant/src/tag/test/demo-ssr.spec.ts | 2 +- packages/vant/src/tag/test/index.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 2 +- .../test/__snapshots__/demo.spec.ts.snap | 2 +- .../test/__snapshots__/index.spec.ts.snap | 2 +- .../src/text-ellipsis/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 4874 ++++++------ .../test/__snapshots__/demo.spec.ts.snap | 4838 ++++++------ .../test/__snapshots__/index.spec.tsx.snap | 180 +- .../src/time-picker/test/demo-ssr.spec.ts | 2 +- .../vant/src/time-picker/test/index.spec.tsx | 10 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 223 +- .../test/__snapshots__/demo.spec.ts.snap | 102 +- .../test/__snapshots__/index.spec.ts.snap | 38 +- packages/vant/src/toast/test/demo-ssr.spec.ts | 2 +- packages/vant/src/toast/test/function.spec.ts | 16 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 170 +- .../test/__snapshots__/demo.spec.ts.snap | 133 +- .../test/__snapshots__/index.spec.tsx.snap | 78 +- .../src/tree-select/test/demo-ssr.spec.ts | 2 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 562 +- .../test/__snapshots__/demo.spec.ts.snap | 290 +- .../test/__snapshots__/index.spec.ts.snap | 145 +- .../vant/src/uploader/test/demo-ssr.spec.ts | 2 +- packages/vant/src/uploader/test/index.spec.ts | 186 +- packages/vant/src/utils/test/index.spec.ts | 4 +- .../vant/src/utils/test/interceptor.spec.ts | 2 +- .../test/__snapshots__/index.spec.ts.snap | 173 +- .../test/__snapshots__/ssr.spec.ts.snap | 34 +- .../vant/src/watermark/test/index.spec.ts | 2 +- packages/vant/src/watermark/test/ssr.spec.ts | 2 +- packages/vant/test/dom.ts | 7 +- packages/vant/test/index.ts | 14 + packages/vant/test/vitest.setup.ts | 1 + packages/vant/tsconfig.json | 3 +- packages/vant/vitest.config.ts | 30 + pnpm-lock.yaml | 1999 ++--- 374 files changed, 38189 insertions(+), 31347 deletions(-) delete mode 100644 packages/vant-cli/cjs/jest.config.cjs delete mode 100644 packages/vant-cli/cjs/jest.file-mock.cjs delete mode 100644 packages/vant-cli/cjs/jest.setup.cjs delete mode 100644 packages/vant-cli/cjs/jest.style-mock.js delete mode 100644 packages/vant-cli/cjs/jest.transformer.cjs delete mode 100644 packages/vant-cli/src/commands/jest.ts delete mode 100644 packages/vant/jest.config.js rename packages/vant/src/signature/test/{demo-ssr.spec.ts => demo-ssr.skip.ts} (82%) rename packages/vant/src/signature/test/{demo.spec.ts => demo.skip.ts} (100%) rename packages/vant/src/signature/test/{index.spec.ts => index.skip.ts} (97%) rename packages/vant/src/signature/test/{ssr.spec.ts => ssr.skip.ts} (89%) create mode 100644 packages/vant/test/vitest.setup.ts create mode 100644 packages/vant/vitest.config.ts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c19c65d53..31a7310e2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -48,7 +48,7 @@ jobs: run: pnpm install - name: Run test cases - run: npm test + run: pnpm run test:coverage - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 diff --git a/package.json b/package.json index bbe0f3e5a..518031b59 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "test": "pnpm --dir ./packages/vant test", "test:watch": "pnpm --dir ./packages/vant test:watch", "test:update": "pnpm --dir ./packages/vant test:update", + "test:coverage": "pnpm --dir ./packages/vant test:coverage", "build": "pnpm --dir ./packages/vant build", "build:site": "pnpm --dir ./packages/vant build:site" }, diff --git a/packages/vant-cli/changelog.md b/packages/vant-cli/changelog.md index 14b58def3..cfa06f31a 100644 --- a/packages/vant-cli/changelog.md +++ b/packages/vant-cli/changelog.md @@ -2,6 +2,7 @@ ## Unreleased +- 移除 vant-cli test 命令 - 移除 vant-cli release 命令 - 移除 vant-cli changelog 命令 - 升级 commander v11 diff --git a/packages/vant-cli/cjs/jest.config.cjs b/packages/vant-cli/cjs/jest.config.cjs deleted file mode 100644 index 8dd1f6a0b..000000000 --- a/packages/vant-cli/cjs/jest.config.cjs +++ /dev/null @@ -1,51 +0,0 @@ -const { join } = require('path'); -const { existsSync } = require('fs'); -const { ROOT } = require('./shared.cjs'); - -const JEST_SETUP_FILE = join(__dirname, 'jest.setup.cjs'); -const JEST_FILE_MOCK_FILE = join(__dirname, 'jest.file-mock.cjs'); -const JEST_STYLE_MOCK_FILE = join(__dirname, 'jest.style-mock.cjs'); - -const DEFAULT_CONFIG = { - testEnvironment: 'jsdom', - moduleNameMapper: { - '\\.(css|less|scss)$': JEST_STYLE_MOCK_FILE, - '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': - JEST_FILE_MOCK_FILE, - }, - setupFilesAfterEnv: [JEST_SETUP_FILE], - moduleFileExtensions: ['js', 'jsx', 'vue', 'ts', 'tsx'], - transform: { - '\\.(js|jsx|ts|tsx|vue)$': - '/node_modules/@vant/cli/cjs/jest.transformer.cjs', - }, - transformIgnorePatterns: ['/node_modules/(?!(@vant/cli))/'], - snapshotSerializers: ['jest-serializer-html'], - collectCoverage: true, - collectCoverageFrom: [ - 'src/**/*.{js,jsx,ts,tsx,vue}', - '!**/demo/**', - '!**/test/**', - ], - coverageReporters: ['html', 'lcov', 'text-summary'], - coverageDirectory: './test/coverage', - testEnvironmentOptions: { - // https://stackoverflow.com/questions/72428323/jest-referenceerror-vue-is-not-defined - customExportConditions: ['node', 'node-addons'], - }, -}; - -function readRootConfig() { - const ROOT_CONFIG_PATH = join(ROOT, 'jest.config.js'); - - if (existsSync(ROOT_CONFIG_PATH)) { - return require(ROOT_CONFIG_PATH); - } - - return {}; -} - -module.exports = { - ...DEFAULT_CONFIG, - ...readRootConfig(), -}; diff --git a/packages/vant-cli/cjs/jest.file-mock.cjs b/packages/vant-cli/cjs/jest.file-mock.cjs deleted file mode 100644 index 86059f362..000000000 --- a/packages/vant-cli/cjs/jest.file-mock.cjs +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'test-file-stub'; diff --git a/packages/vant-cli/cjs/jest.setup.cjs b/packages/vant-cli/cjs/jest.setup.cjs deleted file mode 100644 index de31992f8..000000000 --- a/packages/vant-cli/cjs/jest.setup.cjs +++ /dev/null @@ -1 +0,0 @@ -require('jest-canvas-mock'); diff --git a/packages/vant-cli/cjs/jest.style-mock.js b/packages/vant-cli/cjs/jest.style-mock.js deleted file mode 100644 index f053ebf79..000000000 --- a/packages/vant-cli/cjs/jest.style-mock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/packages/vant-cli/cjs/jest.transformer.cjs b/packages/vant-cli/cjs/jest.transformer.cjs deleted file mode 100644 index 3aaed7441..000000000 --- a/packages/vant-cli/cjs/jest.transformer.cjs +++ /dev/null @@ -1,94 +0,0 @@ -const sfc = require('vue/compiler-sfc'); -const babel = require('@babel/core'); -const esbuild = require('esbuild'); -const nodePath = require('path'); - -const isJsxFile = (path) => /\.(j|t)sx$/.test(path); -const isTsxFile = (path) => /\.tsx$/.test(path); -const isVueFile = (path) => /\.vue$/.test(path); - -const transformJsx = (code, path) => { - const babelResult = babel.transformSync(code, { - filename: path, - babelrc: false, - presets: isTsxFile(path) ? ['@babel/preset-typescript'] : [], - plugins: [['@vue/babel-plugin-jsx']], - }); - return babelResult?.code || ''; -}; - -const transformSFC = (code, path) => { - const parsedPath = nodePath.parse(path); - const { descriptor, errors } = sfc.parse(code, { - filename: parsedPath.base, - sourceRoot: parsedPath.dir, - }); - - if (errors.length) { - errors.forEach((error) => console.error(error)); - return ''; - } - - const output = []; - let bindingMetadata = {}; - - if (descriptor.script) { - const content = descriptor.script.content.replace( - 'export default', - 'const script =', - ); - output.push(content); - } else if (descriptor.scriptSetup) { - const result = sfc.compileScript(descriptor, { - id: 'mock', - }); - - const content = result.content.replace('export default', 'const script ='); - output.push(content); - - if (result.bindings) { - bindingMetadata = result.bindings; - } - } else { - output.push(`const script = {};`); - } - - if (descriptor.template) { - const render = sfc.compileTemplate({ - id: 'mock', - source: descriptor.template.content, - filename: path, - compilerOptions: { - bindingMetadata, - }, - }).code; - output.push(render); - output.push('script.render = render;'); - } - - output.push('export default script;'); - - return output.join('\n'); -}; - -const transformScript = (code) => - esbuild.transformSync(code, { - target: 'es2016', - format: 'cjs', - loader: 'ts', - }).code; - -module.exports = { - canInstrument: true, - process(code, path) { - if (isVueFile(path)) { - code = transformSFC(code, path); - } - if (isJsxFile(path)) { - code = transformJsx(code, path); - } - return { - code: transformScript(code), - }; - }, -}; diff --git a/packages/vant-cli/package.json b/packages/vant-cli/package.json index 9399cb0c2..cbc10b9e3 100644 --- a/packages/vant-cli/package.json +++ b/packages/vant-cli/package.json @@ -38,7 +38,6 @@ "author": "chenjiahan", "license": "MIT", "devDependencies": { - "@jest/types": "^29.1.2", "@types/fs-extra": "^11.0.1", "@types/less": "^3.0.3", "@types/lodash": "^4.14.191", @@ -49,7 +48,6 @@ "dependencies": { "@babel/core": "^7.18.13", "@babel/preset-typescript": "^7.18.6", - "@types/jest": "^29.5.1", "@vant/eslint-config": "^4.0.0", "@vant/touch-emulator": "^1.4.0", "@vitejs/plugin-vue": "^4.0.0", @@ -66,10 +64,6 @@ "hash-sum": "^2.0.0", "highlight.js": "^11.6.0", "husky": "^8.0.1", - "jest": "^29.5.0", - "jest-canvas-mock": "^2.4.0", - "jest-environment-jsdom": "^29.1.2", - "jest-serializer-html": "^7.1.0", "less": "^4.1.3", "lodash": "^4.17.21", "markdown-it": "^13.0.1", diff --git a/packages/vant-cli/src/cli.ts b/packages/vant-cli/src/cli.ts index 5c0ea100d..9fa3ee307 100644 --- a/packages/vant-cli/src/cli.ts +++ b/packages/vant-cli/src/cli.ts @@ -22,39 +22,6 @@ program return lint(); }); -program - .command('test') - .description('Run unit tests through jest') - .option( - '--watch', - 'Watch files for changes and rerun tests related to changed files', - ) - .option( - '--clearCache', - 'Clears the configured Jest cache directory and then exits', - ) - .option( - '--changedSince ', - 'Runs tests related to the changes since the provided branch or commit hash', - ) - .option( - '--logHeapUsage', - 'Logs the heap usage after every test. Useful to debug memory leaks', - ) - .option( - '--runInBand', - 'Run all tests serially in the current process, rather than creating a worker pool of child processes that run tests', - ) - .option( - '--updateSnapshot', - 'Re-record every snapshot that fails during this test run', - ) - .option('--debug', 'Print debugging info about your Jest config') - .action(async (options) => { - const { test } = await import('./commands/jest.js'); - return test(options); - }); - program .command('clean') .description('Clean all dist files') diff --git a/packages/vant-cli/src/commands/jest.ts b/packages/vant-cli/src/commands/jest.ts deleted file mode 100644 index 1ba81287b..000000000 --- a/packages/vant-cli/src/commands/jest.ts +++ /dev/null @@ -1,47 +0,0 @@ -import jest from 'jest'; -import { setNodeEnv } from '../common/index.js'; -import { genPackageEntry } from '../compiler/gen-package-entry.js'; -import { - ROOT, - JEST_CONFIG_FILE, - PACKAGE_ENTRY_FILE, -} from '../common/constant.js'; -import type { Config } from '@jest/types'; - -export function test(command: Config.Argv) { - setNodeEnv('test'); - - genPackageEntry({ - outputPath: PACKAGE_ENTRY_FILE, - }); - - const config = { - rootDir: ROOT, - watch: command.watch, - debug: command.debug, - config: JEST_CONFIG_FILE, - runInBand: command.runInBand, - clearCache: command.clearCache, - changedSince: command.changedSince, - logHeapUsage: command.logHeapUsage, - updateSnapshot: command.updateSnapshot, - // make jest tests faster - // see: https://ivantanev.com/make-jest-faster/ - maxWorkers: '50%', - } as Config.Argv; - - jest - .runCLI(config, [ROOT]) - .then((response) => { - if (!response.results.success && !command.watch) { - process.exit(1); - } - }) - .catch((err) => { - console.log(err); - - if (!command.watch) { - process.exit(1); - } - }); -} diff --git a/packages/vant-cli/src/common/constant.ts b/packages/vant-cli/src/common/constant.ts index 9a4f0e8ab..34a031986 100644 --- a/packages/vant-cli/src/common/constant.ts +++ b/packages/vant-cli/src/common/constant.ts @@ -40,7 +40,6 @@ export const STYLE_DEPS_JSON_FILE = join(DIST_DIR, 'style-deps.json'); // Config files export const POSTCSS_CONFIG_FILE = join(CJS_DIR, 'postcss.config.cjs'); -export const JEST_CONFIG_FILE = join(CJS_DIR, 'jest.config.cjs'); export const SCRIPT_EXTS = [ '.js', diff --git a/packages/vant-use/test/utils.spec.ts b/packages/vant-use/test/utils.spec.ts index 9c1b9b085..6eb98a021 100644 --- a/packages/vant-use/test/utils.spec.ts +++ b/packages/vant-use/test/utils.spec.ts @@ -1,7 +1,7 @@ import { raf, cancelRaf } from '../src/utils'; test('raf', async () => { - const spy = jest.fn(); + const spy = vi.fn(); raf(spy); expect(spy).toHaveBeenCalledTimes(1); diff --git a/packages/vant/.eslintrc b/packages/vant/.eslintrc index 28d474c80..fad617631 100644 --- a/packages/vant/.eslintrc +++ b/packages/vant/.eslintrc @@ -4,6 +4,9 @@ "rules": { "prefer-object-spread": "off" }, + "globals": { + "vi": true + }, "overrides": [ { "files": ["src/**/*"], diff --git a/packages/vant/jest.config.js b/packages/vant/jest.config.js deleted file mode 100644 index 5dbfb0cff..000000000 --- a/packages/vant/jest.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - testPathIgnorePatterns: ['/node_modules/'], - collectCoverageFrom: [ - 'src/**/*.{js,jsx,ts,tsx,vue}', - '!src/lazyload/vue-lazyload/**', - '!**/demo/**', - '!**/test/**', - '!**/lang/**', - ], -}; diff --git a/packages/vant/package.json b/packages/vant/package.json index 474a5e679..1806c4538 100644 --- a/packages/vant/package.json +++ b/packages/vant/package.json @@ -15,14 +15,15 @@ "scripts": { "dev": "vant-cli dev", "lint": "vant-cli lint", - "test": "vant-cli test", + "test": "vitest run", "build": "vant-cli build", "build:site": "vant-cli build-site", "release": "cp ../../README.md ./ && vant-cli release --gitTag && rm ./README.md", "release:site": "pnpm build:site && npx gh-pages -d site-dist --add", - "test:update": "vant-cli test --updateSnapshot", - "test:watch": "vant-cli test --watch", - "test:coverage": "open test/coverage/index.html" + "test:update": "vitest run -u", + "test:watch": "vitest", + "test:coverage": "vitest run --coverage", + "open:coverage": "open test/coverage/index.html" }, "publishConfig": { "registry": "https://registry.npmjs.org/" @@ -53,15 +54,22 @@ "vue": "^3.0.0" }, "devDependencies": { - "@types/jest": "^29.5.1", "@types/node": "^18.16.3", "@vant/area-data": "workspace:*", "@vant/cli": "workspace:*", "@vant/eslint-config": "workspace:*", "@vant/icons": "workspace:*", + "@vitejs/plugin-vue": "^4.0.0", + "@vitejs/plugin-vue-jsx": "^3.0.0", + "@vitest/coverage-v8": "0.34.2", "@vue/runtime-core": "^3.3.4", "@vue/test-utils": "^2.3.2", + "diffable-html": "^5.0.0", + "jsdom": "^22.1.0", "typescript": "^5.0.4", + "vite": "^4.4.2", + "vitest": "^0.34.2", + "vitest-canvas-mock": "^0.3.2", "vue": "^3.3.4", "vue-router": "^4.1.6" }, diff --git a/packages/vant/src/action-bar-button/test/__snapshots__/index.spec.ts.snap b/packages/vant/src/action-bar-button/test/__snapshots__/index.spec.ts.snap index 0c8cbf3f8..a670d5596 100644 --- a/packages/vant/src/action-bar-button/test/__snapshots__/index.spec.ts.snap +++ b/packages/vant/src/action-bar-button/test/__snapshots__/index.spec.ts.snap @@ -1,8 +1,9 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`should render default slot correctly 1`] = ` - - - - - - - `; exports[`should render cancel slot correctly 1`] = ` - `; exports[`should render default slot correctly 1`] = ` -
- -