From 4539400feccaa22d6379813279fff8c1645200cb Mon Sep 17 00:00:00 2001 From: xiaosansiji Date: Wed, 26 Oct 2022 15:10:08 +0800 Subject: [PATCH 01/16] feat: add vitest config --- .eslintrc | 3 ++- TEST_GUIDE.md | 2 +- package.json | 24 +++++++++++++----------- vitest.config.js | 41 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 13 deletions(-) create mode 100644 vitest.config.js diff --git a/.eslintrc b/.eslintrc index 4d8f06e2e..83b275165 100644 --- a/.eslintrc +++ b/.eslintrc @@ -12,7 +12,8 @@ }, "globals": { "cy": "readonly", - "__VERSION__": true + "__VERSION__": true, + "vi": true }, "plugins": [ "vue", diff --git a/TEST_GUIDE.md b/TEST_GUIDE.md index 6c9c14014..dae9248df 100644 --- a/TEST_GUIDE.md +++ b/TEST_GUIDE.md @@ -45,7 +45,7 @@ npm run test:unit - 每个组件至少有两个单元测试文件,一个是测试源代码的单元测试文件 index.test.js,另一个则是测试组件示例代码的单元测试文件 demo.test.js - 用例书写请使用:[vue-test-utils](https://vue-test-utils.vuejs.org/zh/) -- 断言库请使用:[https://jestjs.io/docs/en/expect](https://jestjs.io/docs/en/expect) +- 断言库请使用:[https://vitest.dev/api/#expect](https://vitest.dev/api/#expect) #### 单元测试文件 diff --git a/package.json b/package.json index 29d6376d2..3de0473cf 100644 --- a/package.json +++ b/package.json @@ -44,8 +44,6 @@ }, "scripts": { "update:coverage-badge": "node script/test/generate-coverage.js", - "cypress": "cypress run --config-file script/test/cypress.json", - "cypress-gui": "cypress open --config-file script/test/cypress.json", "start": "cd site && npm run dev", "dev": "cd site && npm run dev", "site": "cd site && npm run build", @@ -64,15 +62,13 @@ "lint": "npm run lint:tsc && eslint --ext .vue,.js,.ts,.tsx ./ --max-warnings 0", "lint:tsc": "tsc --emitDeclarationOnly", "generate:usage": "node script/generate-usage/index.js", - "test": "npm run test:unit && npm run test:node", - "test:demo": "node src/_common/test/script/generate-demo-test.js", - "test:update": "npm run test:unit-update && npm run test:node-update", - "test:unit": "jest --config script/test/jest.unit.conf.js", - "test:unit-update": "jest --config script/test/jest.unit.conf.js --updateSnapshot", - "test:node": "jest --config script/test/jest.ssr.conf.js", - "test:node-update": "jest --config script/test/jest.ssr.conf.js --updateSnapshot", - "test:watch": "jest --config script/test/jest.unit.conf.js --watch", - "test:coverage": "jest --config script/test/jest.unit.conf.js --coverage", + "test": "vitest run", + "test:update": "vitest run -u && npm run test:snap-update", + "test:unit-dev": "vitest", + "test:unit-gui": "vitest --ui", + "test:coverage": "vitest run --coverage", + "test:snap": "cross-env NODE_ENV=test-snap vitest run", + "test:snap-update": "cross-env NODE_ENV=test-snap vitest run -u", "test:e2e": "cypress run --config-file script/test/cypress.json", "test:e2e-gui": "cypress open --config-file script/test/cypress.json", "test:build-files": "node script/test/build-files.js", @@ -126,6 +122,7 @@ "@typescript-eslint/experimental-utils": "^5.4.0", "@typescript-eslint/parser": "^5.4.0", "@typescript-eslint/typescript-estree": "^5.4.0", + "@vitest/ui": "^0.24.3", "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "@vue/babel-preset-jsx": "^1.2.4", "@vue/eslint-config-typescript": "^9.1.0", @@ -135,6 +132,7 @@ "babel-eslint": "^10.0.3", "babel-jest": "~29.1.0", "babel-polyfill": "^6.26.0", + "c8": "^7.12.0", "camelcase": "~6.3.0", "canvas": "~2.10.1", "cli-color": "^2.0.0", @@ -146,6 +144,7 @@ "esbuild": "^0.14.9", "eslint": "^7.1.0", "eslint-config-airbnb-base": "^14.2.1", + "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-import": "^2.23.4", "eslint-plugin-vue": "^8.1.1", "fs-extra": "^10.1.0", @@ -159,6 +158,7 @@ "jest-serializer-vue": "^2.0.2", "jest-transform-stub": "^2.0.0", "jest-watch-typeahead": "~2.2.0", + "jsdom": "^20.0.1", "less": "^4.1.2", "lint-staged": "^12.3.7", "mockdate": "^3.0.2", @@ -189,6 +189,8 @@ "vite-plugin-pwa": "^0.11.11", "vite-plugin-tdoc": "^2.0.2", "vite-plugin-vue2": "^1.9.0", + "vitest": "^0.24.3", + "vitest-fetch-mock": "^0.2.1", "vue": "~2.6.14", "vue-class-component": "^7.2.3", "vue-jest": "^3.0.5", diff --git a/vitest.config.js b/vitest.config.js new file mode 100644 index 000000000..7fada17d2 --- /dev/null +++ b/vitest.config.js @@ -0,0 +1,41 @@ +import { defineConfig } from 'vite'; +import path from 'path'; +import { createVuePlugin } from 'vite-plugin-vue2'; +import ScriptSetup from 'unplugin-vue2-script-setup/vite'; + +const testConfig = { + include: + process.env.NODE_ENV === 'test-snap' + ? ['test/snap/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'] + : ['src/**/__tests__/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + globals: true, + environment: 'jsdom', + testTimeout: 5000, + setupFiles: ['script/test/setup.js'], + transformMode: { + web: [/\.[jt]sx$/], + }, + coverage: { + reporter: ['text', 'json', 'html'], + reportsDirectory: 'test/unit/coverage', + }, +}; + +export default defineConfig({ + resolve: { + alias: { + '@': path.resolve(__dirname, './'), + 'tdesign-vue/es': path.resolve(__dirname, './src'), + 'tdesign-vue': path.resolve(__dirname, './src'), + vue: 'vue/dist/vue.runtime.common.js', + }, + }, + plugins: [ + createVuePlugin({ + include: /(\.md|\.vue)$/, + jsx: true, + }), + ScriptSetup({}), + ], + test: testConfig, +}); From 7c5f0ad229445baabf302ccc3c155a5594797dbb Mon Sep 17 00:00:00 2001 From: xiaosansiji Date: Wed, 26 Oct 2022 16:54:20 +0800 Subject: [PATCH 02/16] feat: remove jest dependencies --- .eslintrc | 1 - package.json | 10 +--------- src/tree/__tests__/debug.md | 4 ++-- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/.eslintrc b/.eslintrc index 83b275165..2bf9cd3c1 100644 --- a/.eslintrc +++ b/.eslintrc @@ -7,7 +7,6 @@ "env": { "browser": true, "node": true, - "jest": true, "es6": true }, "globals": { diff --git a/package.json b/package.json index 3de0473cf..0f5c96e93 100644 --- a/package.json +++ b/package.json @@ -122,6 +122,7 @@ "@typescript-eslint/experimental-utils": "^5.4.0", "@typescript-eslint/parser": "^5.4.0", "@typescript-eslint/typescript-estree": "^5.4.0", + "@vitest/coverage-c8": "^0.24.3", "@vitest/ui": "^0.24.3", "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "@vue/babel-preset-jsx": "^1.2.4", @@ -130,7 +131,6 @@ "autoprefixer": "^9.7.6", "babel-core": "^7.0.0-bridge.0", "babel-eslint": "^10.0.3", - "babel-jest": "~29.1.0", "babel-polyfill": "^6.26.0", "c8": "^7.12.0", "camelcase": "~6.3.0", @@ -152,12 +152,6 @@ "gray-matter": "^4.0.3", "husky": "^7.0.4", "hyphenate": "^0.2.4", - "jest": "~29.1.2", - "jest-environment-jsdom": "~29.1.2", - "jest-html-reporter": "^3.4.2", - "jest-serializer-vue": "^2.0.2", - "jest-transform-stub": "^2.0.0", - "jest-watch-typeahead": "~2.2.0", "jsdom": "^20.0.1", "less": "^4.1.2", "lint-staged": "^12.3.7", @@ -182,7 +176,6 @@ "tdesign-publish-cli": "^0.0.12", "tdesign-site-components": "^0.11.1", "tdesign-theme-generator": "^0.5.0", - "ts-jest": "~29.0.3", "typescript": "~4.5.4", "unplugin-vue2-script-setup": "^0.10.2", "vite": "^2.7.6", @@ -193,7 +186,6 @@ "vitest-fetch-mock": "^0.2.1", "vue": "~2.6.14", "vue-class-component": "^7.2.3", - "vue-jest": "^3.0.5", "vue-router": "^3.5.3", "vue-server-renderer": "~2.6.14", "vue-template-compiler": "~2.6.14", diff --git a/src/tree/__tests__/debug.md b/src/tree/__tests__/debug.md index 288c3ca6f..7a8727252 100644 --- a/src/tree/__tests__/debug.md +++ b/src/tree/__tests__/debug.md @@ -6,9 +6,9 @@ tree 针对性测试命令: ```bash # 执行单测 -npx jest --config script/test/jest.unit.conf.js --coverage ./test/unit/tree/ +npm run test --coverage ./test/unit/tree/ # 更新单测快照 -npx jest --config script/test/jest.unit.conf.js --updateSnapshot ./test/unit/tree/ +npm run test --updateSnapshot ./test/unit/tree/ ``` ## 调试界面 From 151548fcb710c2ca6b131a63174223316dfeb99a Mon Sep 17 00:00:00 2001 From: xiaosansiji Date: Wed, 26 Oct 2022 16:55:52 +0800 Subject: [PATCH 03/16] feat: rm jest config --- script/test/jest.base.conf.js | 47 ----------------------------------- script/test/jest.ssr.conf.js | 7 ------ script/test/jest.unit.conf.js | 13 ---------- 3 files changed, 67 deletions(-) delete mode 100644 script/test/jest.base.conf.js delete mode 100644 script/test/jest.ssr.conf.js delete mode 100644 script/test/jest.unit.conf.js diff --git a/script/test/jest.base.conf.js b/script/test/jest.base.conf.js deleted file mode 100644 index 891dbba1d..000000000 --- a/script/test/jest.base.conf.js +++ /dev/null @@ -1,47 +0,0 @@ -const path = require('path'); - -// To have consistent date time parsing both in local and CI environments we set -// the timezone of the Node process. -process.env.TZ = 'Asia/Shanghai'; - -module.exports = { - verbose: true, - rootDir: path.resolve(__dirname, '../../'), - testEnvironmentOptions: { testURL: 'http://localhost/' }, - moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx', 'vue', 'json'], - moduleNameMapper: { - '^@/(.*)$': '/$1', - '^tdesign-vue/lib/(.*)$': '/src/$1', - '^tdesign-vue/es': '/src', - '^tdesign-vue$': '/src/index.ts', - '^tdesign-vue(.*)': '/src/$1', - '^vue$': '/node_modules/vue/dist/vue.js', - '^tdesign-icons-vue$': '/node_modules/tdesign-icons-vue/dist/index.js', - }, - modulePathIgnorePatterns: ['/test/unit/coverage/'], - transform: { - '.*\\.js$': ['babel-jest'], - '.*\\.(vue)$': ['vue-jest'], - '.*\\.tsx?$': ['ts-jest'], - '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': ['jest-transform-stub'], - }, - testPathIgnorePatterns: ['/node_modules/', '.history'], - setupFiles: ['/script/test/setup'], - globals: { - 'ts-jest': { - tsconfig: '/tsconfig.json', - babelConfig: true, - }, - }, - reporters: [ - 'default', - [ - './node_modules/jest-html-reporter', - { - pageTitle: 'TDesign Test Report', - }, - ], - ], - snapshotSerializers: ['jest-serializer-vue'], - watchPlugins: ['jest-watch-typeahead/filename', 'jest-watch-typeahead/testname'], -}; diff --git a/script/test/jest.ssr.conf.js b/script/test/jest.ssr.conf.js deleted file mode 100644 index 44bcec6e0..000000000 --- a/script/test/jest.ssr.conf.js +++ /dev/null @@ -1,7 +0,0 @@ -const baseConfig = require('./jest.base.conf.js'); - -module.exports = { - ...baseConfig, - testEnvironment: 'jsdom', - testRegex: 'ssr/.*\\.test\\.js$', -}; diff --git a/script/test/jest.unit.conf.js b/script/test/jest.unit.conf.js deleted file mode 100644 index ac4454da1..000000000 --- a/script/test/jest.unit.conf.js +++ /dev/null @@ -1,13 +0,0 @@ -const baseConfig = require('./jest.base.conf.js'); - -module.exports = { - ...baseConfig, - testEnvironment: 'jsdom', - testMatch: ['/src/**/__tests__/**/*.test.{js,ts,tsx}'], - // close coverage by default - collectCoverage: false, - coverageDirectory: '/test/unit/coverage', - collectCoverageFrom: ['src/**/*.{ts,tsx,js,vue}', '!**/node_modules/**'], - testPathIgnorePatterns: ['/node_modules/', '/src/_common'], - coverageReporters: ['html', 'text-summary', 'cobertura'], -}; From 0548304c556443206ac57020f788edc99b10aa05 Mon Sep 17 00:00:00 2001 From: xiaosansiji Date: Wed, 26 Oct 2022 16:57:19 +0800 Subject: [PATCH 04/16] fix: eslint error in test --- .eslintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc b/.eslintrc index 2bf9cd3c1..83b275165 100644 --- a/.eslintrc +++ b/.eslintrc @@ -7,6 +7,7 @@ "env": { "browser": true, "node": true, + "jest": true, "es6": true }, "globals": { From 39c2f53852259240db947a354e8bbf3bd77f1c61 Mon Sep 17 00:00:00 2001 From: xiaosansiji Date: Wed, 26 Oct 2022 17:01:42 +0800 Subject: [PATCH 05/16] feat: jest to vitest --- .../__tests__/__snapshots__/demo.test.js.snap | 14 +- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 18 +- .../__snapshots__/anchor-link.test.jsx.snap | 5 + .../__snapshots__/anchor-target.test.jsx.snap | 8 + .../__tests__/__snapshots__/demo.test.js.snap | 85 +- ...chor-link.test.js => anchor-link.test.jsx} | 12 +- ...-target.test.js => anchor-target.test.jsx} | 19 +- .../{index.test.js => index.test.jsx} | 12 +- .../__tests__/__snapshots__/demo.test.js.snap | 50 +- .../__snapshots__/index.test.jsx.snap | 188 ++++ .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 72 +- .../__snapshots__/index.test.jsx.snap | 171 ++++ .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 29 +- .../__snapshots__/index.test.jsx.snap | 18 + .../{index.test.js => index.test.jsx} | 2 +- .../__tests__/__snapshots__/demo.test.js.snap | 33 +- .../__snapshots__/index.test.jsx.snap | 18 + .../{index.test.js => index.test.jsx} | 6 +- .../__tests__/__snapshots__/demo.test.js.snap | 368 +++++--- .../__snapshots__/index.test.jsx.snap | 103 +++ .../{index.test.js => index.test.jsx} | 5 - .../__tests__/__snapshots__/demo.test.js.snap | 132 +-- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 45 +- .../{index.test.js => index.test.jsx} | 2 +- .../__tests__/__snapshots__/demo.test.js.snap | 25 +- .../__snapshots__/index.test.jsx.snap | 188 ++++ .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 92 +- .../{index.test.js => index.test.jsx} | 10 +- .../__tests__/__snapshots__/demo.test.js.snap | 38 +- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 161 ++-- .../{index.test.js => index.test.jsx} | 3 - .../__tests__/__snapshots__/demo.test.js.snap | 349 +++++--- .../__tests__/__snapshots__/demo.test.js.snap | 26 +- .../__snapshots__/index.test.jsx.snap | 52 ++ .../{index.test.js => index.test.jsx} | 5 - .../__tests__/__snapshots__/demo.test.js.snap | 835 +----------------- src/dialog/__tests__/demo.test.js | 2 - .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 36 +- .../__snapshots__/index.test.jsx.snap | 69 ++ .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 140 ++- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 69 +- .../{index.test.js => index.test.jsx} | 9 +- .../__tests__/__snapshots__/demo.test.js.snap | 226 +++-- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 61 +- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 6 +- .../__tests__/__snapshots__/demo.test.js.snap | 73 +- .../__snapshots__/index.test.jsx.snap | 304 +++++++ .../{index.test.js => index.test.jsx} | 12 +- .../__tests__/__snapshots__/demo.test.js.snap | 35 +- .../__snapshots__/index.test.jsx.snap | 120 +++ .../{index.test.js => index.test.jsx} | 12 +- .../__tests__/__snapshots__/demo.test.js.snap | 8 +- .../{index.test.js => index.test.jsx} | 2 +- .../__tests__/__snapshots__/demo.test.js.snap | 57 +- .../__tests__/__snapshots__/demo.test.js.snap | 40 +- .../__snapshots__/index.test.jsx.snap | 120 +++ .../{index.test.js => index.test.jsx} | 4 +- .../__tests__/__snapshots__/demo.test.js.snap | 77 +- .../__snapshots__/index.test.jsx.snap | 392 ++++++++ .../{index.test.js => index.test.jsx} | 4 +- .../__tests__/__snapshots__/demo.test.js.snap | 92 +- .../__snapshots__/index.test.jsx.snap | 18 + .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 412 ++------- .../__snapshots__/head-menu.test.jsx.snap | 103 +++ .../__snapshots__/menu-item.test.jsx.snap | 86 ++ .../__snapshots__/menu.test.jsx.snap | 171 ++++ .../__snapshots__/submenu.test.jsx.snap | 128 +++ .../{head-menu.test.js => head-menu.test.jsx} | 0 .../{menu-item.test.js => menu-item.test.jsx} | 0 .../__tests__/{menu.test.js => menu.test.jsx} | 0 .../{submenu.test.js => submenu.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 122 ++- .../__snapshots__/index.test.jsx.snap | 256 ++++++ .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 86 +- .../__tests__/__snapshots__/demo.test.js.snap | 29 +- .../{index.test.js => index.test.jsx} | 6 +- .../__tests__/__snapshots__/demo.test.js.snap | 105 ++- .../{index.test.js => index.test.jsx} | 5 - .../__tests__/__snapshots__/demo.test.js.snap | 55 +- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 307 ++++--- .../__snapshots__/index.test.jsx.snap | 511 +++++++++++ .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 46 +- .../__snapshots__/index.test.jsx.snap | 409 +++++++++ .../{index.test.js => index.test.jsx} | 4 +- .../__tests__/__snapshots__/demo.test.js.snap | 10 +- .../__tests__/__snapshots__/demo.test.js.snap | 14 +- .../__tests__/__snapshots__/demo.test.js.snap | 110 ++- .../__tests__/__snapshots__/demo.test.js.snap | 70 +- .../__snapshots__/index.test.jsx.snap | 256 ++++++ .../{index.test.js => index.test.jsx} | 82 +- .../__tests__/__snapshots__/demo.test.js.snap | 95 +- .../{index.test.js => index.test.jsx} | 3 - .../__tests__/__snapshots__/demo.test.js.snap | 23 +- .../__snapshots__/index.test.jsx.snap | 80 ++ .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 57 +- .../__tests__/__snapshots__/demo.test.js.snap | 108 ++- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 26 +- .../__snapshots__/index.test.jsx.snap | 222 +++++ .../{index.test.js => index.test.jsx} | 2 +- .../__tests__/__snapshots__/demo.test.js.snap | 14 +- .../__tests__/__snapshots__/demo.test.js.snap | 452 +++++----- .../__tests__/{base.test.js => base.test.jsx} | 0 .../{column.test.js => column.test.jsx} | 0 ...row.events.test.js => row.events.test.jsx} | 16 +- .../__tests__/__snapshots__/demo.test.js.snap | 43 +- .../__snapshots__/index.test.jsx.snap | 171 ++++ .../{index.test.js => index.test.jsx} | 8 +- .../__tests__/__snapshots__/demo.test.js.snap | 32 +- .../__tests__/__snapshots__/demo.test.js.snap | 91 +- .../__snapshots__/index.test.jsx.snap | 596 +++++++++++++ .../{index.test.js => index.test.jsx} | 14 +- .../__tests__/__snapshots__/demo.test.js.snap | 10 +- .../__snapshots__/index.test.jsx.snap | 69 ++ .../{index.test.js => index.test.jsx} | 12 +- .../__tests__/__snapshots__/demo.test.js.snap | 30 +- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 61 +- .../{index.test.js => index.test.jsx} | 0 .../__tests__/__snapshots__/demo.test.js.snap | 28 +- .../{index.test.js => index.test.jsx} | 6 +- .../__tests__/__snapshots__/demo.test.js.snap | 23 +- .../__snapshots__/index.test.js.snap | 2 - .../__snapshots__/index.test.jsx.snap | 409 +++++++++ .../{index.test.js => index.test.jsx} | 6 +- .../__tests__/__snapshots__/demo.test.js.snap | 367 +++++--- .../__tests__/{api.test.js => api.test.jsx} | 2 +- .../{checkable.test.js => checkable.test.jsx} | 2 +- .../{event.test.js => event.test.jsx} | 30 +- .../{expand.test.js => expand.test.jsx} | 2 +- .../{filter.test.js => filter.test.jsx} | 2 +- .../{index.test.js => index.test.jsx} | 16 +- .../__tests__/{lazy.test.js => lazy.test.jsx} | 2 +- ...deModel.test.js => treeNodeModel.test.jsx} | 2 +- .../__tests__/__snapshots__/demo.test.js.snap | 65 +- .../__snapshots__/index.test.jsx.snap | 18 + .../{index.test.js => index.test.jsx} | 0 src/utils/{__tests__ => __tests__.jsx} | 8 +- .../__tests__/__snapshots__/demo.test.js.snap | 14 +- test/ssr/__snapshots__/ssr.test.js.snap | 2 +- test/ssr/ssr.test.js | 2 +- 157 files changed, 8112 insertions(+), 3701 deletions(-) rename src/affix/__tests__/{index.test.js => index.test.jsx} (100%) create mode 100644 src/anchor/__tests__/__snapshots__/anchor-link.test.jsx.snap create mode 100644 src/anchor/__tests__/__snapshots__/anchor-target.test.jsx.snap rename src/anchor/__tests__/{anchor-link.test.js => anchor-link.test.jsx} (93%) rename src/anchor/__tests__/{anchor-target.test.js => anchor-target.test.jsx} (52%) rename src/anchor/__tests__/{index.test.js => index.test.jsx} (97%) create mode 100644 src/avatar/__tests__/__snapshots__/index.test.jsx.snap rename src/avatar/__tests__/{index.test.js => index.test.jsx} (100%) create mode 100644 src/badge/__tests__/__snapshots__/index.test.jsx.snap rename src/badge/__tests__/{index.test.js => index.test.jsx} (100%) create mode 100644 src/breadcrumb/__tests__/__snapshots__/index.test.jsx.snap rename src/breadcrumb/__tests__/{index.test.js => index.test.jsx} (99%) create mode 100644 src/button/__tests__/__snapshots__/index.test.jsx.snap rename src/button/__tests__/{index.test.js => index.test.jsx} (97%) create mode 100644 src/calendar/__tests__/__snapshots__/index.test.jsx.snap rename src/calendar/__tests__/{index.test.js => index.test.jsx} (95%) rename src/card/__tests__/{index.test.js => index.test.jsx} (100%) rename src/cascader/__tests__/{index.test.js => index.test.jsx} (98%) create mode 100644 src/checkbox/__tests__/__snapshots__/index.test.jsx.snap rename src/checkbox/__tests__/{index.test.js => index.test.jsx} (100%) rename src/collapse/__tests__/{index.test.js => index.test.jsx} (98%) rename src/color-picker/__tests__/{index.test.js => index.test.jsx} (100%) rename src/comment/__tests__/{index.test.js => index.test.jsx} (92%) create mode 100644 src/date-picker/__tests__/__snapshots__/index.test.jsx.snap rename src/date-picker/__tests__/{index.test.js => index.test.jsx} (94%) rename src/dialog/__tests__/{index.test.js => index.test.jsx} (100%) create mode 100644 src/divider/__tests__/__snapshots__/index.test.jsx.snap rename src/divider/__tests__/{index.test.js => index.test.jsx} (100%) rename src/drawer/__tests__/{index.test.js => index.test.jsx} (100%) rename src/dropdown/__tests__/{index.test.js => index.test.jsx} (95%) rename src/form/__tests__/{index.test.js => index.test.jsx} (100%) rename src/image/__tests__/{index.test.js => index.test.jsx} (100%) create mode 100644 src/input-number/__tests__/__snapshots__/index.test.jsx.snap rename src/input-number/__tests__/{index.test.js => index.test.jsx} (97%) create mode 100644 src/input/__tests__/__snapshots__/index.test.jsx.snap rename src/input/__tests__/{index.test.js => index.test.jsx} (96%) rename src/jumper/__tests__/{index.test.js => index.test.jsx} (99%) create mode 100644 src/link/__tests__/__snapshots__/index.test.jsx.snap rename src/link/__tests__/{index.test.js => index.test.jsx} (97%) create mode 100644 src/list/__tests__/__snapshots__/index.test.jsx.snap rename src/list/__tests__/{index.test.js => index.test.jsx} (99%) create mode 100644 src/loading/__tests__/__snapshots__/index.test.jsx.snap rename src/loading/__tests__/{index.test.js => index.test.jsx} (100%) create mode 100644 src/menu/__tests__/__snapshots__/head-menu.test.jsx.snap create mode 100644 src/menu/__tests__/__snapshots__/menu-item.test.jsx.snap create mode 100644 src/menu/__tests__/__snapshots__/menu.test.jsx.snap create mode 100644 src/menu/__tests__/__snapshots__/submenu.test.jsx.snap rename src/menu/__tests__/{head-menu.test.js => head-menu.test.jsx} (100%) rename src/menu/__tests__/{menu-item.test.js => menu-item.test.jsx} (100%) rename src/menu/__tests__/{menu.test.js => menu.test.jsx} (100%) rename src/menu/__tests__/{submenu.test.js => submenu.test.jsx} (100%) create mode 100644 src/message/__tests__/__snapshots__/index.test.jsx.snap rename src/message/__tests__/{index.test.js => index.test.jsx} (100%) rename src/pagination/__tests__/{index.test.js => index.test.jsx} (98%) rename src/popconfirm/__tests__/{index.test.js => index.test.jsx} (89%) rename src/popup/__tests__/{index.test.js => index.test.jsx} (100%) create mode 100644 src/progress/__tests__/__snapshots__/index.test.jsx.snap rename src/progress/__tests__/{index.test.js => index.test.jsx} (100%) create mode 100644 src/radio/__tests__/__snapshots__/index.test.jsx.snap rename src/radio/__tests__/{index.test.js => index.test.jsx} (98%) create mode 100644 src/select/__tests__/__snapshots__/index.test.jsx.snap rename src/select/__tests__/{index.test.js => index.test.jsx} (60%) rename src/skeleton/__tests__/{index.test.js => index.test.jsx} (92%) create mode 100644 src/slider/__tests__/__snapshots__/index.test.jsx.snap rename src/slider/__tests__/{index.test.js => index.test.jsx} (100%) rename src/steps/__tests__/{index.test.js => index.test.jsx} (100%) create mode 100644 src/swiper/__tests__/__snapshots__/index.test.jsx.snap rename src/swiper/__tests__/{index.test.js => index.test.jsx} (99%) rename src/table/__tests__/{base.test.js => base.test.jsx} (100%) rename src/table/__tests__/{column.test.js => column.test.jsx} (100%) rename src/table/__tests__/{row.events.test.js => row.events.test.jsx} (94%) create mode 100644 src/tabs/__tests__/__snapshots__/index.test.jsx.snap rename src/tabs/__tests__/{index.test.js => index.test.jsx} (98%) create mode 100644 src/tag/__tests__/__snapshots__/index.test.jsx.snap rename src/tag/__tests__/{index.test.js => index.test.jsx} (97%) create mode 100644 src/textarea/__tests__/__snapshots__/index.test.jsx.snap rename src/textarea/__tests__/{index.test.js => index.test.jsx} (96%) rename src/time-picker/__tests__/{index.test.js => index.test.jsx} (100%) rename src/tooltip/__tests__/{index.test.js => index.test.jsx} (100%) rename src/transfer/__tests__/{index.test.js => index.test.jsx} (99%) create mode 100644 src/tree-select/__tests__/__snapshots__/index.test.jsx.snap rename src/tree-select/__tests__/{index.test.js => index.test.jsx} (99%) rename src/tree/__tests__/{api.test.js => api.test.jsx} (97%) rename src/tree/__tests__/{checkable.test.js => checkable.test.jsx} (99%) rename src/tree/__tests__/{event.test.js => event.test.jsx} (90%) rename src/tree/__tests__/{expand.test.js => expand.test.jsx} (99%) rename src/tree/__tests__/{filter.test.js => filter.test.jsx} (98%) rename src/tree/__tests__/{index.test.js => index.test.jsx} (86%) rename src/tree/__tests__/{lazy.test.js => lazy.test.jsx} (99%) rename src/tree/__tests__/{treeNodeModel.test.js => treeNodeModel.test.jsx} (99%) create mode 100644 src/upload/__tests__/__snapshots__/index.test.jsx.snap rename src/upload/__tests__/{index.test.js => index.test.jsx} (100%) rename src/utils/{__tests__ => __tests__.jsx} (88%) diff --git a/src/affix/__tests__/__snapshots__/demo.test.js.snap b/src/affix/__tests__/__snapshots__/demo.test.js.snap index ab7eb826e..c6ea56b2e 100644 --- a/src/affix/__tests__/__snapshots__/demo.test.js.snap +++ b/src/affix/__tests__/__snapshots__/demo.test.js.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1 -exports[`Affix Affix baseVue demo works fine 1`] = ` +exports[`Affix > Affix baseVue demo works fine 1`] = `
@@ -21,20 +21,26 @@ exports[`Affix Affix baseVue demo works fine 1`] = `
`; -exports[`Affix Affix containerVue demo works fine 1`] = ` +exports[`Affix > Affix containerVue demo works fine 1`] = `
-
+
@@ -504,9 +507,7 @@ exports[`Button Button iconVue demo works fine 1`] = ` - - 上传文件 - + 上传文件
@@ -596,7 +597,7 @@ exports[`Button Button iconVue demo works fine 1`] = `
`; -exports[`Button Button shapeVue demo works fine 1`] = ` +exports[`Button > Button shapeVue demo works fine 1`] = `
`; -exports[`Button Button sizeVue demo works fine 1`] = ` +exports[`Button > Button sizeVue demo works fine 1`] = `
`; -exports[`Button Button statusVue demo works fine 1`] = ` +exports[`Button > Button statusVue demo works fine 1`] = `
`; -exports[`Button Button themeVue demo works fine 1`] = ` +exports[`Button > Button themeVue demo works fine 1`] = `
:props > :content 1`] = ` +VueWrapper { + "_emitted": { + "hook:mounted": [ + [], + ], + }, + "_emittedByOrder": [ + { + "args": [], + "name": "hook:mounted", + }, + ], + "isFunctionalComponent": undefined, +} +`; diff --git a/src/button/__tests__/index.test.js b/src/button/__tests__/index.test.jsx similarity index 97% rename from src/button/__tests__/index.test.js rename to src/button/__tests__/index.test.jsx index 926f4f068..6c5774e71 100644 --- a/src/button/__tests__/index.test.js +++ b/src/button/__tests__/index.test.jsx @@ -38,7 +38,7 @@ describe('Button', () => { expect(wrapper).toMatchSnapshot(); }); it(':loading', () => { - const fn = jest.fn(); + const fn = vi.fn(); const wrapper = mount({ render() { return ; @@ -57,7 +57,7 @@ describe('Button', () => { expect(wrapper).toMatchSnapshot(); }); it(':disabled', () => { - const fn = jest.fn(); + const fn = vi.fn(); const wrapper = mount({ render() { return ( @@ -95,7 +95,7 @@ describe('Button', () => { describe('@event', () => { it('Event passthrough ', () => { - const fn = jest.fn(); + const fn = vi.fn(); const wrapper = mount({ render() { return ; diff --git a/src/calendar/__tests__/__snapshots__/demo.test.js.snap b/src/calendar/__tests__/__snapshots__/demo.test.js.snap index aaf281630..b85f2f528 100644 --- a/src/calendar/__tests__/__snapshots__/demo.test.js.snap +++ b/src/calendar/__tests__/__snapshots__/demo.test.js.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1 -exports[`Calendar Calendar baseVue demo works fine 1`] = ` +exports[`Calendar > Calendar baseVue demo works fine 1`] = `
@@ -771,9 +771,10 @@ exports[`Calendar Calendar baseVue demo works fine 1`] = `
`; -exports[`Calendar Calendar cardVue demo works fine 1`] = ` +exports[`Calendar > Calendar cardVue demo works fine 1`] = `
-
@@ -795,6 +799,7 @@ exports[`Calendar Calendar cardVue demo works fine 1`] = ` >
@@ -2824,13 +2849,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
10
-
@@ -2839,13 +2865,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
11
-
@@ -2854,13 +2881,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
12
-
@@ -2869,13 +2897,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
13
-
@@ -2888,13 +2917,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
14
-
@@ -2903,50 +2933,52 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
15
-
- - 错误事件 - + 错误事件
- - 警告事件 - + 警告事件
- - 正常事件 - + 正常事件
-
@@ -2955,13 +2987,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
16
-
@@ -2970,13 +3003,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
17
-
@@ -2985,13 +3019,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
18
-
@@ -3000,13 +3035,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
19
-
@@ -3015,13 +3051,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
20
-
@@ -3034,13 +3071,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
21
-
@@ -3049,13 +3087,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
22
-
@@ -3064,13 +3103,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
23
-
@@ -3079,13 +3119,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
24
-
@@ -3094,13 +3135,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
25
-
@@ -3109,13 +3151,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
26
-
@@ -3124,13 +3167,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
27
-
@@ -3143,13 +3187,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
28
-
@@ -3158,13 +3203,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
29
-
@@ -3173,13 +3219,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
30
-
@@ -3188,13 +3235,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
31
-
@@ -3203,13 +3251,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
1
-
@@ -3218,13 +3267,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
2
-
@@ -3233,13 +3283,14 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` >
3
-
@@ -3250,25 +3301,34 @@ exports[`Calendar Calendar cellVue demo works fine 1`] = ` `; -exports[`Calendar Calendar controllerConfigVue demo works fine 1`] = ` +exports[`Calendar > Calendar controllerConfigVue demo works fine 1`] = `
-
- +
+ 控件全局 - -

-

+ -

- -

-

+ -

- -
- +
+ 控件局部 - -

-

+ -

- -
-
`; -exports[`Calendar Calendar eventsVue demo works fine 1`] = ` +exports[`Calendar > Calendar eventsVue demo works fine 1`] = `
`; -exports[`Calendar Calendar firstDayOfWeekVue demo works fine 1`] = ` +exports[`Calendar > Calendar firstDayOfWeekVue demo works fine 1`] = `
-
@@ -5067,6 +5161,7 @@ exports[`Calendar Calendar firstDayOfWeekVue demo works fine 1`] = ` >
`; -exports[`Calendar Calendar headVue demo works fine 1`] = ` +exports[`Calendar > Calendar headVue demo works fine 1`] = `
@@ -6762,9 +6858,10 @@ exports[`Calendar Calendar headVue demo works fine 1`] = `
`; -exports[`Calendar Calendar modeVue demo works fine 1`] = ` +exports[`Calendar > Calendar modeVue demo works fine 1`] = `
`; -exports[`Calendar Calendar rangeVue demo works fine 1`] = ` +exports[`Calendar > Calendar rangeVue demo works fine 1`] = `
@@ -7912,7 +8011,7 @@ exports[`Calendar Calendar rangeVue demo works fine 1`] = `
`; -exports[`Calendar Calendar slotPropsApiVue demo works fine 1`] = ` +exports[`Calendar > Calendar slotPropsApiVue demo works fine 1`] = `
@@ -8685,7 +8784,7 @@ exports[`Calendar Calendar slotPropsApiVue demo works fine 1`] = `
`; -exports[`Calendar Calendar valueVue demo works fine 1`] = ` +exports[`Calendar > Calendar valueVue demo works fine 1`] = `
-
@@ -9652,7 +9750,7 @@ exports[`Calendar Calendar valueVue demo works fine 1`] = `
`; -exports[`Calendar Calendar weekVue demo works fine 1`] = ` +exports[`Calendar > Calendar weekVue demo works fine 1`] = `
@@ -9873,51 +9971,37 @@ exports[`Calendar Calendar weekVue demo works fine 1`] = ` - - 星期1 - + 星期1 - - 星期2 - + 星期2 - - 星期3 - + 星期3 - - 星期4 - + 星期4 - - 星期5 - + 星期5 - - 星期6 - + 星期6 - - 星期天 - + 星期天 @@ -10440,7 +10524,6 @@ exports[`Calendar Calendar weekVue demo works fine 1`] = `
-
-
:props > :firstDayOfWeek 1`] = ` +VueWrapper { + "_emitted": { + "hook:mounted": [ + [], + ], + }, + "_emittedByOrder": [ + { + "args": [], + "name": "hook:mounted", + }, + ], + "isFunctionalComponent": undefined, +} +`; + +exports[`Calendar > :props > :isShowWeekendDefault 1`] = ` +VueWrapper { + "_emitted": { + "hook:mounted": [ + [], + ], + }, + "_emittedByOrder": [ + { + "args": [], + "name": "hook:mounted", + }, + ], + "isFunctionalComponent": undefined, +} +`; + +exports[`Calendar > :props > :mode 1`] = ` +VueWrapper { + "_emitted": { + "hook:mounted": [ + [], + ], + }, + "_emittedByOrder": [ + { + "args": [], + "name": "hook:mounted", + }, + ], + "isFunctionalComponent": undefined, +} +`; + +exports[`Calendar > :props > :range 1`] = ` +VueWrapper { + "_emitted": { + "hook:mounted": [ + [], + ], + }, + "_emittedByOrder": [ + { + "args": [], + "name": "hook:mounted", + }, + ], + "isFunctionalComponent": undefined, +} +`; + +exports[`Calendar > :props > :theme 1`] = ` +VueWrapper { + "_emitted": { + "hook:mounted": [ + [], + ], + }, + "_emittedByOrder": [ + { + "args": [], + "name": "hook:mounted", + }, + ], + "isFunctionalComponent": undefined, +} +`; + +exports[`Calendar > :props > :value 1`] = ` +VueWrapper { + "_emitted": { + "hook:mounted": [ + [], + ], + }, + "_emittedByOrder": [ + { + "args": [], + "name": "hook:mounted", + }, + ], + "isFunctionalComponent": undefined, +} +`; diff --git a/src/calendar/__tests__/index.test.js b/src/calendar/__tests__/index.test.jsx similarity index 95% rename from src/calendar/__tests__/index.test.js rename to src/calendar/__tests__/index.test.jsx index 4c789e304..cf0dedd9d 100644 --- a/src/calendar/__tests__/index.test.js +++ b/src/calendar/__tests__/index.test.jsx @@ -76,11 +76,6 @@ describe('Calendar', () => { }); }); - // test events - describe('@event', () => { - window.console.info('calendar test @event'); - }); - // test slots describe('', () => { it('', () => { diff --git a/src/card/__tests__/__snapshots__/demo.test.js.snap b/src/card/__tests__/__snapshots__/demo.test.js.snap index 22555d6a7..8e0832306 100644 --- a/src/card/__tests__/__snapshots__/demo.test.js.snap +++ b/src/card/__tests__/__snapshots__/demo.test.js.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1 -exports[`Card Card baseVue demo works fine 1`] = ` +exports[`Card > Card baseVue demo works fine 1`] = `
- - 仅有内容区域的卡片形式。卡片内容区域可以是文字、图片、表单、表格等形式信息内容。可使用大中小不同的卡片尺寸,按业务需求进行呈现。 - + 仅有内容区域的卡片形式。卡片内容区域可以是文字、图片、表单、表格等形式信息内容。可使用大中小不同的卡片尺寸,按业务需求进行呈现。
`; -exports[`Card Card borderedNoneVue demo works fine 1`] = ` +exports[`Card > Card borderedNoneVue demo works fine 1`] = ` `; -exports[`Card Card footerContentActionsVue demo works fine 1`] = ` +exports[`Card > Card footerContentActionsVue demo works fine 1`] = `
`; -exports[`Card Card footerContentVue demo works fine 1`] = ` +exports[`Card > Card footerContentVue demo works fine 1`] = `
`; -exports[`Card Card footerVue demo works fine 1`] = ` +exports[`Card > Card footerVue demo works fine 1`] = `
-
-
-
-
`; -exports[`Card Card headerAllPropsVue demo works fine 1`] = ` +exports[`Card > Card headerAllPropsVue demo works fine 1`] = `
- - 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。 - + 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。
`; -exports[`Card Card headerBorderedVue demo works fine 1`] = ` +exports[`Card > Card headerBorderedVue demo works fine 1`] = `
- - 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。 - + 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。
`; -exports[`Card Card headerDescriptionVue demo works fine 1`] = ` +exports[`Card > Card headerDescriptionVue demo works fine 1`] = `
- - 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。 - + 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。
`; -exports[`Card Card headerFooterActionsVue demo works fine 1`] = ` +exports[`Card > Card headerFooterActionsVue demo works fine 1`] = `
-
-
-
-
`; -exports[`Card Card headerSubtitleFooterActionsVue demo works fine 1`] = ` +exports[`Card > Card headerSubtitleFooterActionsVue demo works fine 1`] = `
-
-
-
-
`; -exports[`Card Card headerSubtitleVue demo works fine 1`] = ` +exports[`Card > Card headerSubtitleVue demo works fine 1`] = `
- - 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。 - + 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。
`; -exports[`Card Card headerVue demo works fine 1`] = ` +exports[`Card > Card headerVue demo works fine 1`] = `
- - 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。 - + 卡片内容,以描述性为主,可以是文字、图片或图文组合的形式。按业务需求进行自定义组合。
`; -exports[`Card Card hoverVue demo works fine 1`] = ` +exports[`Card > Card hoverVue demo works fine 1`] = `
- - 这是一段很长很长很长很长很长很长很长很长很长很长很长很长 + 这是一段很长很长很长很长很长很长很长很长很长很长很长很长 很长很长很长很长很长很长很长很长很长很长很长很长很长很长 很长很长很长很长很长很长很长很长很长很长很长很长很长很长 - 很长很长很长很长很长很长很长很长很长很长很长的内容示例。 - + 很长很长很长很长很长很长很长很长很长很长很长的内容示例。
`; -exports[`Card Card smallVue demo works fine 1`] = ` +exports[`Card > Card smallVue demo works fine 1`] = `
- - 这是一段很长很长很长很长很长很长很长很长很长很长很长很长 + 这是一段很长很长很长很长很长很长很长很长很长很长很长很长 很长很长很长很长很长很长很长很长很长很长很长很长很长很长 很长很长很长很长很长很长很长很长很长很长很长很长很长很长 - 很长很长很长很长很长很长很长很长很长很长很长的内容示例。 - + 很长很长很长很长很长很长很长很长很长很长很长的内容示例。
`; diff --git a/src/card/__tests__/index.test.js b/src/card/__tests__/index.test.jsx similarity index 100% rename from src/card/__tests__/index.test.js rename to src/card/__tests__/index.test.jsx diff --git a/src/cascader/__tests__/__snapshots__/demo.test.js.snap b/src/cascader/__tests__/__snapshots__/demo.test.js.snap index 9b17857ef..803c99225 100644 --- a/src/cascader/__tests__/__snapshots__/demo.test.js.snap +++ b/src/cascader/__tests__/__snapshots__/demo.test.js.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1 -exports[`Cascader Cascader baseVue demo works fine 1`] = ` +exports[`Cascader > Cascader baseVue demo works fine 1`] = `
@@ -41,7 +41,7 @@ exports[`Cascader Cascader baseVue demo works fine 1`] = `
`; -exports[`Cascader Cascader checkStrictlyVue demo works fine 1`] = ` +exports[`Cascader > Cascader checkStrictlyVue demo works fine 1`] = `
`; -exports[`Cascader Cascader collapsedVue demo works fine 1`] = ` +exports[`Cascader > Cascader collapsedVue demo works fine 1`] = `
- - - - +2 - + + +2
`; -exports[`Cascader Cascader disabledVue demo works fine 1`] = ` +exports[`Cascader > Cascader disabledVue demo works fine 1`] = `
`; -exports[`Cascader Cascader ellipsisVue demo works fine 1`] = ` +exports[`Cascader > Cascader ellipsisVue demo works fine 1`] = `
`; -exports[`Cascader Cascader filterableVue demo works fine 1`] = ` +exports[`Cascader > Cascader filterableVue demo works fine 1`] = `
`; -exports[`Cascader Cascader keysVue demo works fine 1`] = ` +exports[`Cascader > Cascader keysVue demo works fine 1`] = `
`; -exports[`Cascader Cascader loadVue demo works fine 1`] = ` +exports[`Cascader > Cascader loadVue demo works fine 1`] = `
@@ -857,7 +854,7 @@ exports[`Cascader Cascader loadVue demo works fine 1`] = `
`; -exports[`Cascader Cascader maxVue demo works fine 1`] = ` +exports[`Cascader > Cascader maxVue demo works fine 1`] = `
@@ -898,7 +895,7 @@ exports[`Cascader Cascader maxVue demo works fine 1`] = `
`; -exports[`Cascader Cascader multipleVue demo works fine 1`] = ` +exports[`Cascader > Cascader multipleVue demo works fine 1`] = `
@@ -952,7 +949,7 @@ exports[`Cascader Cascader multipleVue demo works fine 1`] = `
`; -exports[`Cascader Cascader panelVue demo works fine 1`] = ` +exports[`Cascader > Cascader panelVue demo works fine 1`] = `
`; -exports[`Cascader Cascader showAllLevelsVue demo works fine 1`] = ` +exports[`Cascader > Cascader showAllLevelsVue demo works fine 1`] = `
`; -exports[`Cascader Cascader sizeVue demo works fine 1`] = ` +exports[`Cascader > Cascader sizeVue demo works fine 1`] = `
`; -exports[`Cascader Cascader triggerVue demo works fine 1`] = ` +exports[`Cascader > Cascader triggerVue demo works fine 1`] = `
`; -exports[`Cascader Cascader valueModeVue demo works fine 1`] = ` +exports[`Cascader > Cascader valueModeVue demo works fine 1`] = `
`; -exports[`Cascader Cascader valueTypeVue demo works fine 1`] = ` +exports[`Cascader > Cascader valueTypeVue demo works fine 1`] = `
{ describe('CascaderPanel', () => { describe('@event', () => { it('click', async () => { - const fn = jest.fn(); + const fn = vi.fn(); const wrapper = mount({ render() { return ; diff --git a/src/checkbox/__tests__/__snapshots__/demo.test.js.snap b/src/checkbox/__tests__/__snapshots__/demo.test.js.snap index 5a7ee5f50..542a802c0 100644 --- a/src/checkbox/__tests__/__snapshots__/demo.test.js.snap +++ b/src/checkbox/__tests__/__snapshots__/demo.test.js.snap @@ -1,8 +1,9 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1 -exports[`Checkbox Checkbox baseVue demo works fine 1`] = ` +exports[`Checkbox > Checkbox baseVue demo works fine 1`] = `
-
@@ -602,7 +595,6 @@ exports[`Collapse Collapse baseVue demo works fine 1`] = `
-
@@ -681,7 +673,7 @@ exports[`Collapse Collapse baseVue demo works fine 1`] = `
`; -exports[`Collapse Collapse iconVue demo works fine 1`] = ` +exports[`Collapse > Collapse iconVue demo works fine 1`] = `
- - 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。 - + 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。
-
@@ -809,7 +798,6 @@ exports[`Collapse Collapse iconVue demo works fine 1`] = `
-
@@ -861,15 +849,12 @@ exports[`Collapse Collapse iconVue demo works fine 1`] = `
- - 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。 - + 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。
-
@@ -921,9 +906,7 @@ exports[`Collapse Collapse iconVue demo works fine 1`] = `
- - 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。 - + 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。
@@ -983,7 +966,6 @@ exports[`Collapse Collapse iconVue demo works fine 1`] = ` 左边 -
`; -exports[`Collapse Collapse mutexVue demo works fine 1`] = ` +exports[`Collapse > Collapse mutexVue demo works fine 1`] = `
- - 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。 - + 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。
-
@@ -1162,7 +1141,6 @@ exports[`Collapse Collapse mutexVue demo works fine 1`] = `
-
@@ -1214,15 +1192,12 @@ exports[`Collapse Collapse mutexVue demo works fine 1`] = `
- - 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。 - + 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。
-
@@ -1274,9 +1249,7 @@ exports[`Collapse Collapse mutexVue demo works fine 1`] = `
- - 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。 - + 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。
@@ -1296,7 +1269,7 @@ exports[`Collapse Collapse mutexVue demo works fine 1`] = `
`; -exports[`Collapse Collapse otherVue demo works fine 1`] = ` +exports[`Collapse > Collapse otherVue demo works fine 1`] = `
- - 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。 - + 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。
-
@@ -1424,7 +1394,6 @@ exports[`Collapse Collapse otherVue demo works fine 1`] = `
-
@@ -1476,15 +1445,12 @@ exports[`Collapse Collapse otherVue demo works fine 1`] = `
- - 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。 - + 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。
-
@@ -1536,9 +1502,7 @@ exports[`Collapse Collapse otherVue demo works fine 1`] = `
- - 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。 - + 这部分是每个折叠面板折叠或展开的内容,可根据不同业务或用户的使用诉求,进行自定义填充。可以是纯文本、图文、子列表等内容形式。
@@ -1569,7 +1533,6 @@ exports[`Collapse Collapse otherVue demo works fine 1`] = ` 全部禁用 -
`; -exports[`Collapse Collapse rightSlotVue demo works fine 1`] = ` +exports[`Collapse > Collapse rightSlotVue demo works fine 1`] = `
@@ -1653,7 +1616,6 @@ exports[`Collapse Collapse rightSlotVue demo works fine 1`] = ` 禁用 -
-
@@ -1743,7 +1702,6 @@ exports[`Collapse Collapse rightSlotVue demo works fine 1`] = ` 禁用 -
-
@@ -1833,7 +1788,6 @@ exports[`Collapse Collapse rightSlotVue demo works fine 1`] = ` 禁用 -
-
@@ -1923,7 +1874,6 @@ exports[`Collapse Collapse rightSlotVue demo works fine 1`] = ` 禁用 -
diff --git a/src/collapse/__tests__/index.test.js b/src/collapse/__tests__/index.test.jsx similarity index 98% rename from src/collapse/__tests__/index.test.js rename to src/collapse/__tests__/index.test.jsx index 30e591768..778ebf3ff 100644 --- a/src/collapse/__tests__/index.test.js +++ b/src/collapse/__tests__/index.test.jsx @@ -52,7 +52,7 @@ describe('Collapse', () => { }); test(':disabled', async () => { - const mockFn = jest.fn(); + const mockFn = vi.fn(); const wrapper = mount( Vue.extend({ components: { @@ -167,7 +167,7 @@ describe('Collapse', () => { }); test(':expandOnRowClick', async () => { - const mockFn = jest.fn(); + const mockFn = vi.fn(); const wrapper = mount( Vue.extend({ components: { @@ -227,7 +227,7 @@ describe('Collapse', () => { describe('@event', () => { test('change', async () => { - const mockFn = jest.fn(); + const mockFn = vi.fn(); const wrapper = mount( Vue.extend({ components: { @@ -308,7 +308,7 @@ describe('CollapsePanel', () => { }); test(':disabled', async () => { - const mockFn = jest.fn(); + const mockFn = vi.fn(); const wrapper = mount( Vue.extend({ components: { @@ -366,7 +366,7 @@ describe('CollapsePanel', () => { }); test(':value', async () => { - const mockFn = jest.fn(); + const mockFn = vi.fn(); const wrapper = mount( Vue.extend({ components: { diff --git a/src/color-picker/__tests__/__snapshots__/demo.test.js.snap b/src/color-picker/__tests__/__snapshots__/demo.test.js.snap index ec1d5ef7c..e031c40e5 100644 --- a/src/color-picker/__tests__/__snapshots__/demo.test.js.snap +++ b/src/color-picker/__tests__/__snapshots__/demo.test.js.snap @@ -1,8 +1,9 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1 -exports[`ColorPicker ColorPicker colorModeVue demo works fine 1`] = ` +exports[`ColorPicker > ColorPicker colorModeVue demo works fine 1`] = `
-
+
默认(单色 + 线性渐变)
@@ -31,6 +36,7 @@ exports[`ColorPicker ColorPicker colorModeVue demo works fine 1`] = ` >
-
+
仅单色模式
@@ -91,6 +100,7 @@ exports[`ColorPicker ColorPicker colorModeVue demo works fine 1`] = ` >
-
+
仅线性渐变模式
@@ -153,6 +166,7 @@ exports[`ColorPicker ColorPicker colorModeVue demo works fine 1`] = ` >
`; -exports[`ColorPicker ColorPicker enableAlphaVue demo works fine 1`] = ` +exports[`ColorPicker > ColorPicker enableAlphaVue demo works fine 1`] = `
@@ -1016,7 +1030,7 @@ exports[`ColorPicker ColorPicker enableAlphaVue demo works fine 1`] = `
`; -exports[`ColorPicker ColorPicker panelVue demo works fine 1`] = ` +exports[`ColorPicker > ColorPicker panelVue demo works fine 1`] = `
@@ -1791,7 +1805,7 @@ exports[`ColorPicker ColorPicker panelVue demo works fine 1`] = `
`; -exports[`ColorPicker ColorPicker recentColorVue demo works fine 1`] = ` +exports[`ColorPicker > ColorPicker recentColorVue demo works fine 1`] = `
`; -exports[`ColorPicker ColorPicker statusDisabledVue demo works fine 1`] = ` +exports[`ColorPicker > ColorPicker statusDisabledVue demo works fine 1`] = `
@@ -3508,7 +3522,7 @@ exports[`ColorPicker ColorPicker statusDisabledVue demo works fine 1`] = `
`; -exports[`ColorPicker ColorPicker statusReadonlyVue demo works fine 1`] = ` +exports[`ColorPicker > ColorPicker statusReadonlyVue demo works fine 1`] = `
@@ -4286,7 +4300,7 @@ exports[`ColorPicker ColorPicker statusReadonlyVue demo works fine 1`] = `
`; -exports[`ColorPicker ColorPicker swatchColorVue demo works fine 1`] = ` +exports[`ColorPicker > ColorPicker swatchColorVue demo works fine 1`] = `
`; -exports[`ColorPicker ColorPicker triggerVue demo works fine 1`] = ` +exports[`ColorPicker > ColorPicker triggerVue demo works fine 1`] = `
diff --git a/src/color-picker/__tests__/index.test.js b/src/color-picker/__tests__/index.test.jsx similarity index 100% rename from src/color-picker/__tests__/index.test.js rename to src/color-picker/__tests__/index.test.jsx diff --git a/src/comment/__tests__/__snapshots__/demo.test.js.snap b/src/comment/__tests__/__snapshots__/demo.test.js.snap index e8bf3e9d6..bc4854202 100644 --- a/src/comment/__tests__/__snapshots__/demo.test.js.snap +++ b/src/comment/__tests__/__snapshots__/demo.test.js.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1 -exports[`Comment Comment baseVue demo works fine 1`] = ` +exports[`Comment > Comment baseVue demo works fine 1`] = `
@@ -43,15 +43,17 @@ exports[`Comment Comment baseVue demo works fine 1`] = `
`; -exports[`Comment Comment listVue demo works fine 1`] = ` +exports[`Comment > Comment listVue demo works fine 1`] = `
  • - + - 6
  • - -
  • -
  • - + - 回复 @@ -145,6 +151,7 @@ exports[`Comment Comment listVue demo works fine 1`] = `
  • - + - 6
  • - -
  • -
  • - + - 回复 @@ -238,6 +249,7 @@ exports[`Comment Comment listVue demo works fine 1`] = `
  • - + - 6
  • - -
  • -
  • - + - 回复 @@ -336,9 +352,10 @@ exports[`Comment Comment listVue demo works fine 1`] = `
`; -exports[`Comment Comment operationVue demo works fine 1`] = ` +exports[`Comment > Comment operationVue demo works fine 1`] = `
  • - + - 6
  • - -
  • -
  • - + - 回复 @@ -420,9 +440,10 @@ exports[`Comment Comment operationVue demo works fine 1`] = `
  • `; -exports[`Comment Comment quoteVue demo works fine 1`] = ` +exports[`Comment > Comment quoteVue demo works fine 1`] = `
  • - + - 6
  • - -
  • -
  • - + - 回复 @@ -534,9 +559,10 @@ exports[`Comment Comment quoteVue demo works fine 1`] = `
  • `; -exports[`Comment Comment replyFormVue demo works fine 1`] = ` +exports[`Comment > Comment replyFormVue demo works fine 1`] = `
    `; - -exports[`Textarea :props :disabled 1`] = `
    `; - -exports[`Textarea :props :maxlength 1`] = `
    0/10
    `; - -exports[`Textarea :props :readonly 1`] = `
    `; diff --git a/src/upload/__tests__/__snapshots__/index.test.js.snap b/src/upload/__tests__/__snapshots__/index.test.js.snap deleted file mode 100644 index 743d52a6a..000000000 --- a/src/upload/__tests__/__snapshots__/index.test.js.snap +++ /dev/null @@ -1,12 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Upload :props :isBatchUpload 1`] = ` -
    -
    -
    -
    -
    -`; From c272094591a3410d4a7965cd097efffdd2f8aae3 Mon Sep 17 00:00:00 2001 From: xiaosansiji Date: Thu, 27 Oct 2022 16:12:12 +0800 Subject: [PATCH 10/16] feat: use istanbul collect coverage --- package.json | 1 + vitest.config.js | 1 + 2 files changed, 2 insertions(+) diff --git a/package.json b/package.json index 6f6bbc89f..9b26bf69c 100644 --- a/package.json +++ b/package.json @@ -123,6 +123,7 @@ "@typescript-eslint/parser": "^5.4.0", "@typescript-eslint/typescript-estree": "^5.4.0", "@vitest/coverage-c8": "^0.24.3", + "@vitest/coverage-istanbul": "^0.24.3", "@vitest/ui": "^0.24.3", "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "@vue/babel-preset-jsx": "^1.2.4", diff --git a/vitest.config.js b/vitest.config.js index 7fada17d2..1582b312a 100644 --- a/vitest.config.js +++ b/vitest.config.js @@ -16,6 +16,7 @@ const testConfig = { web: [/\.[jt]sx$/], }, coverage: { + provider: 'istanbul', reporter: ['text', 'json', 'html'], reportsDirectory: 'test/unit/coverage', }, From aa50de4effbf437662c22e26ffb10509488291a5 Mon Sep 17 00:00:00 2001 From: xiaosansiji Date: Thu, 27 Oct 2022 16:13:01 +0800 Subject: [PATCH 11/16] fix: ci error --- script/test/setup.js | 4 +++- src/affix/__tests__/index.test.jsx | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/script/test/setup.js b/script/test/setup.js index 56b8d334b..47d3edd49 100644 --- a/script/test/setup.js +++ b/script/test/setup.js @@ -2,6 +2,8 @@ import Vue from 'vue'; import VueCompositionAPI from '@vue/composition-api'; import TDesign from '@/src/index'; +Vue.config.productionTip = true; +Vue.config.devtools = false; + Vue.use(VueCompositionAPI); Vue.use(TDesign); -Vue.config.productionTip = false; diff --git a/src/affix/__tests__/index.test.jsx b/src/affix/__tests__/index.test.jsx index d77adc5d0..1f64be925 100644 --- a/src/affix/__tests__/index.test.jsx +++ b/src/affix/__tests__/index.test.jsx @@ -59,7 +59,6 @@ describe('Affix', () => { const affixWrapper = wrapper.findComponent(Affix); await affixWrapper.setData({ fixedTop: 10 }); expect(affixWrapper.find('.t-affix').selector).toBe('.t-affix'); - wrapper.destroy(); }); }); }); From cf4a3c676fd0355156b911cdc664a83a5e946718 Mon Sep 17 00:00:00 2001 From: xiaosansiji Date: Sat, 29 Oct 2022 16:45:16 +0800 Subject: [PATCH 12/16] feat: add demo snapshot test script --- test/snap/csr.test.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 test/snap/csr.test.js diff --git a/test/snap/csr.test.js b/test/snap/csr.test.js new file mode 100644 index 000000000..d1389351b --- /dev/null +++ b/test/snap/csr.test.js @@ -0,0 +1,26 @@ +import glob from 'glob'; +import MockDate from 'mockdate'; +import { vi } from 'vitest'; +import { mount } from '@vue/test-utils'; + +// 固定时间,当使用 new Date() 时,返回固定时间,防止“当前时间”的副作用影响,导致 snapshot 变更,mockdate 插件见 https://github.com/boblauer/MockDate +MockDate.set('2020-12-28 00:00:00'); + +function runTest() { + const files = glob.sync('./src/**/_example/*.vue'); + + describe('csr snapshot test', () => { + HTMLCanvasElement.prototype.getContext = vi.fn(); + + files.forEach((file) => { + it(`csr test ${file}`, async () => { + const demo = await import(`../.${file}`); + const realDemoComp = demo.default ? demo.default : demo; + const wrapper = mount(realDemoComp); + expect(wrapper.element).toMatchSnapshot(); + }); + }); + }); +} + +runTest(); From 3132d5e6c97c46b8899a55456787319f9cc71e5e Mon Sep 17 00:00:00 2001 From: xiaosansiji Date: Sat, 29 Oct 2022 16:56:53 +0800 Subject: [PATCH 13/16] test: add csr test snapshot --- test/snap/__snapshots__/csr.test.js.snap | 136456 ++++++++++++++++++++ 1 file changed, 136456 insertions(+) create mode 100644 test/snap/__snapshots__/csr.test.js.snap diff --git a/test/snap/__snapshots__/csr.test.js.snap b/test/snap/__snapshots__/csr.test.js.snap new file mode 100644 index 000000000..de8cfcec8 --- /dev/null +++ b/test/snap/__snapshots__/csr.test.js.snap @@ -0,0 +1,136456 @@ +// Vitest Snapshot v1 + +exports[`csr snapshot test > csr test ./src/affix/_example/base.vue 1`] = ` +
    +
    +
    + +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/affix/_example/container.vue 1`] = ` +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/alert/_example/base.vue 1`] = ` +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    + 这是一条普通的消息提示 +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条成功的消息提示 +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条警示信息 +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条失败信息提示 +
    +
    +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/alert/_example/close.vue 1`] = ` +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条成功的消息提示 +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条普通的消息提示 +
    +
    +
    +
    + 知道了 +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条警示信息 +
    +
    +
    +
    + FunctionPropClose +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 高危操作/出错信息提示 +
    +
    +
    +
    + Slot Close +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/alert/_example/collapse.vue 1`] = ` +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    + + 这是折叠的第一条消息 + +
    +
    + + 这是折叠的第二条消息 + +
    +
    + 展开更多 +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/alert/_example/icon.vue 1`] = ` +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条普通的消息提示 +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条警示消息提示 +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 高危操作/出错信息提示 +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条警示信息(以function形式自定义icon) +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + 高危操作/出错信息提示(以slot形式自定义icon) +
    +
    +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/alert/_example/operation.vue 1`] = ` +
    +
    +
    +
    + + + +
    +
    +
    +
    + 这是一条普通的消息提示 +
    +
    + + 相关操作 + +
    +
    +
    +
    + + + +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/alert/_example/title.vue 1`] = ` +
    +
    +
    +
    + + + +
    +
    +
    + 这是一条普通的消息提示 +
    +
    +
    + 这是与普通的消息提示相关的文字辅助说明 +
    +
    + + 相关操作 + +
    +
    +
    +
    + + + +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/anchor/_example/base.vue 1`] = ` +
    +
    + +`; + +exports[`csr snapshot test > csr test ./src/anchor/_example/container.vue 1`] = ` +
    +
    + +
    +
    + anchor-content-1 +
    +
    + anchor-content-2 +
    +
    + anchor-content-3 +
    +
    + anchor-content-4 +
    +
    + anchor-content-5 +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/anchor/_example/cursor.vue 1`] = ` +
    + +`; + +exports[`csr snapshot test > csr test ./src/anchor/_example/large.vue 1`] = ` +
    + +`; + +exports[`csr snapshot test > csr test ./src/anchor/_example/multiple.vue 1`] = ` +
    + +`; + +exports[`csr snapshot test > csr test ./src/anchor/_example/small.vue 1`] = ` +
    + +`; + +exports[`csr snapshot test > csr test ./src/anchor/_example/target.vue 1`] = ` +
    +
    + 定义 + + + + +
    +
    + 服务功能 + + + + +
    +
    + 使用指南 + + + + +
    +
    + 创建签名 + + + + +
    +
    + 创建内容 + + + + +
    +
    + 保密协议 + + + + +
    +
    + 其他 + + + + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/avatar/_example/adjust.vue 1`] = ` +
    +
    +
    + + 王 + +
    +
    +
    +
    + + 王亿 + +
    +
    +
    +
    + + 王亿亿 + +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/avatar/_example/base.vue 1`] = ` +
    +
    +
    + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + W + +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/avatar/_example/group.vue 1`] = ` +
    +
    +
    +
    +
    +
    + +
    +
    + + W + +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + W + +
    +
    + + + +
    +
    +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/avatar/_example/group-cascading.vue 1`] = ` +
    +
    +
    +
    +
    +
    + +
    +
    + + W + +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + W + +
    +
    + + + +
    +
    +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/avatar/_example/group-max.vue 1`] = ` +
    +
    +
    +
    +
    +
    + +
    +
    + + Avatar + +
    +
    + + +1 + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + Avatar + +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + Avatar + +
    +
    + + more + +
    +
    +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/avatar/_example/shape.vue 1`] = ` +
    +
    +
    + + W + +
    +
    +
    +
    + + W + +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/avatar/_example/size.vue 1`] = ` +
    +
    +
    +
    +
    + + W + +
    +
    +
    +
    + + W + +
    +
    +
    +
    + + W + +
    +
    +
    +
    + + W + +
    +
    +
    +
    +
    +
    +
    +
    + + W + +
    +
    +
    +
    + + W + +
    +
    +
    +
    + + W + +
    +
    +
    +
    + + W + +
    +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/badge/_example/base.vue 1`] = ` +
    +
    +
    +
    + +
    +
    +
    +
    + 解锁新徽章 + +
    +
    +
    +
    + + + + +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/badge/_example/custom.vue 1`] = ` +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + new + +
    +
    +
    +
    +
    + + 99 + +
    +
    +
    +
    +
    + + 99+ + +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/badge/_example/number.vue 1`] = ` +
    +
    +
    +
    + + 2 + +
    +
    +
    +
    +
    + + 0 + +
    +
    +
    +
    +
    + + 99+ + +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/badge/_example/offset.vue 1`] = ` +
    +
    +
    +
    + + 2 + +
    +
    +
    +
    +
    + + 2 + +
    +
    +
    +
    +
    + + 2 + +
    +
    +
    +
    +
    + + 2 + +
    +
    +
    +
    +
    + + 2 + +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/badge/_example/shape.vue 1`] = ` +
    +
    +
    +
    + + 2 + +
    +
    +
    +
    +
    + + 99 + +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/badge/_example/size.vue 1`] = ` +
    +
    +
    +
    +

    + 1.默认大小 +

    +
    +
    +
    +
    +
    +
    + + 2 + +
    +
    +
    +
    +
    + + 99 + +
    +
    +
    +
    +
    + + 99+ + +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    + 2.小 +

    +
    +
    +
    +
    +
    +
    + + 2 + +
    +
    +
    +
    +
    + + 99 + +
    +
    +
    +
    +
    + + 99+ + +
    +
    +
    +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/breadcrumb/_example/base.vue 1`] = ` +
    +
    + + + 页面1 + + + + + + + +
    +
    + + + 页面2面包屑文案超长时悬浮显示文案全部信息 + + + + + + + +
    +
    + + + 面包屑中文案过长时可缩略显示,鼠标hover时显示全部 + + + + + + + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/breadcrumb/_example/custom.vue 1`] = ` +
    +
    + + + 页面1 + + + + + + + +
    +
    + + + 页面2 + + + + + + + +
    +
    + + + 页面3 + + + + + + + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/breadcrumb/_example/dropdown.vue 1`] = ` +
    +
    + + + 页面1 + + + + / + +
    +
    + + + 页面2 + + + + + + + / + +
    +
    + + + 页面3 + + + + / + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/breadcrumb/_example/href.vue 1`] = ` +
    +
    +
    +
    + + + 首页 + + + + + + + +
    +
    + + + 页面1(覆盖路由) + + + + + + + +
    +
    + + + 页面2 + + + + + + + +
    +
    + + + 页面3(disabled) + + + + + + + +
    +
    + + + 页面4自定义点击 + + + + + + + +
    +
    +
    +
    +
    + 点击计数器:0 +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/breadcrumb/_example/icon.vue 1`] = ` +
    +
    + + + + + + 页面1 + + + + + + + +
    +
    + + + + + + 页面2 + + + + + + + +
    +
    + + + + + + 页面3 + + + + + + + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/breadcrumb/_example/options.vue 1`] = ` +
    +
    + + + 页面1 + + + + + + + +
    +
    + + + 页面2 + + + + + + + +
    +
    + + + 页面3 + + + + + + + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/breadcrumb/_example/to.vue 1`] = ` +
    +
    + + + 首页 + + + + + + + +
    +
    + + + 页面1 + + + + + + + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/button/_example/base.vue 1`] = ` +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/button/_example/block.vue 1`] = ` +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/button/_example/custom-element.vue 1`] = ` +
    +
    +
    + + div + +
    +
    + + +
    +`; + +exports[`csr snapshot test > csr test ./src/button/_example/ghost.vue 1`] = ` +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/button/_example/icon.vue 1`] = ` +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/button/_example/shape.vue 1`] = ` +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/button/_example/size.vue 1`] = ` +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +`; + +exports[`csr snapshot test > csr test ./src/button/_example/status.vue 1`] = ` +
    +
    + +
    +
    +