mirror of
https://github.com/pmndrs/zustand.git
synced 2025-12-08 19:45:52 +00:00
update vitest (#2462)
* update vitest * use resolve * patch for older ts * for older ts * hack with any * for other builds * wip: for umd * Revert "wip: for umd" This reverts commit a5c0d6beaa80cbbdcad7961b77d593effd6a83c8. * wip: esm * wip: system * Revert "wip: system" This reverts commit aa919631a94a5b321fa9f2ec6c26b826c37ca3b0. * wip: umd * wip: hack cjs * system cannot be tested
This commit is contained in:
parent
fc2f85afff
commit
d57072caf5
41
.github/workflows/test-multiple-builds.yml
vendored
41
.github/workflows/test-multiple-builds.yml
vendored
@ -12,24 +12,8 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build: [cjs, umd] # [cjs, esm, umd, system]
|
||||
build: [cjs, esm, umd]
|
||||
env: [development, production]
|
||||
devtools-skip:
|
||||
- CI-MATRIX-NOSKIP
|
||||
include:
|
||||
- devtools-skip: CI-MATRIX-[2345]
|
||||
build: umd
|
||||
- devtools-skip: CI-MATRIX-[1345]
|
||||
build: umd
|
||||
- devtools-skip: CI-MATRIX-[1245]
|
||||
build: umd
|
||||
- devtools-skip: CI-MATRIX-[1235]
|
||||
build: umd
|
||||
- devtools-skip: CI-MATRIX-[1234]
|
||||
build: umd
|
||||
exclude:
|
||||
- devtools-skip: CI-MATRIX-NOSKIP
|
||||
build: umd
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
@ -56,32 +40,25 @@ jobs:
|
||||
- name: Patch for CJS
|
||||
if: ${{ matrix.build == 'cjs' }}
|
||||
run: |
|
||||
sed -i~ "s/<rootDir>\/src\(.*\)\.ts/<rootDir>\/dist\1.js/" package.json
|
||||
sed -i~ "s/resolve('\.\/src\(.*\)\.ts')/resolve('\.\/dist\1.js')/" vitest.config.ts
|
||||
sed -i~ "s/module.exports.createStore = vanilla.createStore;//" dist/index.js
|
||||
- name: Patch for ESM
|
||||
if: ${{ matrix.build == 'esm' }}
|
||||
run: |
|
||||
sed -i~ "s/<rootDir>\/src\(.*\)\.ts/<rootDir>\/dist\/esm\1.js" package.json
|
||||
sed -i~ "s/resolve('\.\/src\(.*\)\.ts')/resolve('\.\/dist\/esm\1.mjs')/" vitest.config.ts
|
||||
sed -i~ "1s/^/import.meta.env=import.meta.env||{};import.meta.env.MODE='${NODE_ENV}';/" tests/*.tsx
|
||||
env:
|
||||
NODE_ENV: ${{ matrix.env }}
|
||||
- name: Patch for UMD (DEV)
|
||||
if: ${{ matrix.build == 'umd' && matrix.env == 'development' }}
|
||||
- name: Patch for UMD
|
||||
if: ${{ matrix.build == 'umd' }}
|
||||
run: |
|
||||
sed -i~ "s/<rootDir>\/src\(.*\)\.ts/<rootDir>\/dist\/umd\1.development.js/" package.json
|
||||
sed -i~ "s/it('\[${DEVTOOLS_SKIP}\]/it.skip('/" tests/devtools.test.tsx
|
||||
sed -i~ "s/resolve('\.\/src\(.*\)\.ts')/resolve('\.\/dist\/umd\1.${NODE_ENV}.js')/" vitest.config.ts
|
||||
env:
|
||||
DEVTOOLS_SKIP: ${{ matrix.devtools-skip }}
|
||||
- name: Patch for UMD (PRD)
|
||||
if: ${{ matrix.build == 'umd' && matrix.env == 'production' }}
|
||||
run: |
|
||||
sed -i~ "s/<rootDir>\/src\(.*\)\.ts/<rootDir>\/dist\/umd\1.production.js/" package.json
|
||||
sed -i~ "s/it('\[${DEVTOOLS_SKIP}\]/it.skip('/" tests/devtools.test.tsx
|
||||
env:
|
||||
DEVTOOLS_SKIP: ${{ matrix.devtools-skip }}
|
||||
NODE_ENV: ${{ matrix.env }}
|
||||
- name: Patch for SystemJS
|
||||
if: ${{ matrix.build == 'system' }}
|
||||
run: |
|
||||
sed -i~ "s/<rootDir>\/src\(.*\)\.ts/<rootDir>\/dist\/system\1.${NODE_ENV}.js/" package.json
|
||||
sed -i~ "s/resolve('\.\/src\(.*\)\.ts')/resolve('\.\/dist\/system\1.${NODE_ENV}.js')/" vitest.config.ts
|
||||
env:
|
||||
NODE_ENV: ${{ matrix.env }}
|
||||
- name: Test ${{ matrix.build }} ${{ matrix.env }}
|
||||
|
||||
21
.github/workflows/test-old-typescript.yml
vendored
21
.github/workflows/test-old-typescript.yml
vendored
@ -47,7 +47,22 @@ jobs:
|
||||
sed -i~ 's/"include": .*/"include": ["src\/types.d.ts", "dist\/**\/*", "tests\/**\/*"],/' tsconfig.json
|
||||
yarn json -I -f package.json -e "this.resolutions={}; this.resolutions['@types/node']='18.13.0';"
|
||||
yarn add -D @types/node@18.13.0
|
||||
- name: Test ${{ matrix.typescript }}
|
||||
- name: Install old TypeScript
|
||||
run: yarn add -D typescript@${{ matrix.typescript }}
|
||||
- name: Patch testing setup for Old TS
|
||||
if: ${{ matrix.typescript == '4.4.4' || matrix.typescript == '4.3.5' || matrix.typescript == '4.2.3' || matrix.typescript == '4.1.5' }}
|
||||
run: |
|
||||
yarn add -D typescript@${{ matrix.typescript }}
|
||||
yarn tsc --noEmit
|
||||
rm node_modules/@vitest/expect/dist/*.d.ts
|
||||
echo "declare module '@vitest/expect'" >> ./src/types.d.ts
|
||||
rm node_modules/@vitest/runner/dist/*.d.ts
|
||||
echo "declare module '@vitest/runner'" >> ./src/types.d.ts
|
||||
rm node_modules/@vitest/spy/dist/*.d.ts
|
||||
echo "declare module '@vitest/spy'" >> ./src/types.d.ts
|
||||
rm node_modules/@vitest/utils/dist/*.d.ts
|
||||
echo "declare module '@vitest/utils'" >> ./src/types.d.ts
|
||||
rm node_modules/vite-node/dist/*.d.ts
|
||||
echo "declare module 'vite-node'" >> ./src/types.d.ts
|
||||
rm node_modules/vitest/dist/*.d.ts
|
||||
echo "declare module 'vitest'" >> ./src/types.d.ts
|
||||
- name: Test ${{ matrix.typescript }}
|
||||
run: yarn tsc --noEmit
|
||||
|
||||
@ -225,8 +225,8 @@
|
||||
"@types/use-sync-external-store": "^0.0.6",
|
||||
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
||||
"@typescript-eslint/parser": "^7.1.0",
|
||||
"@vitest/coverage-v8": "0.33.0",
|
||||
"@vitest/ui": "0.33.0",
|
||||
"@vitest/coverage-v8": "^1.4.0",
|
||||
"@vitest/ui": "^1.4.0",
|
||||
"concurrently": "^8.2.2",
|
||||
"downlevel-dts": "^0.11.0",
|
||||
"esbuild": "^0.20.1",
|
||||
@ -249,7 +249,7 @@
|
||||
"rollup-plugin-esbuild": "^6.1.1",
|
||||
"shx": "^0.3.4",
|
||||
"typescript": "^5.3.3",
|
||||
"vitest": "0.33.0"
|
||||
"vitest": "^1.4.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/react": ">=16.8",
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { Mock, afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { devtools, redux } from 'zustand/middleware'
|
||||
import { StoreApi, createStore } from 'zustand/vanilla'
|
||||
|
||||
@ -16,12 +16,12 @@ type TupleOfEqualLength<Arr extends unknown[], T> = number extends Arr['length']
|
||||
type Connection = {
|
||||
subscribers: ((message: unknown) => void)[]
|
||||
api: {
|
||||
subscribe: Mock<[f: (m: unknown) => void], () => void>
|
||||
unsubscribe: Mock<any>
|
||||
send: Mock<any>
|
||||
init: Mock<any>
|
||||
error: Mock<any>
|
||||
dispatch?: Mock<any>
|
||||
subscribe: any
|
||||
unsubscribe: any
|
||||
send: any
|
||||
init: any
|
||||
error: any
|
||||
dispatch?: any
|
||||
}
|
||||
}
|
||||
const namedConnections = new Map<string | undefined, Connection>()
|
||||
|
||||
@ -34,8 +34,7 @@ describe('types', () => {
|
||||
})
|
||||
|
||||
describe('useShallow', () => {
|
||||
const testUseShallowSimpleCallback =
|
||||
vi.fn<[{ selectorOutput: string[]; useShallowOutput: string[] }]>()
|
||||
const testUseShallowSimpleCallback = vi.fn()
|
||||
const TestUseShallowSimple = ({
|
||||
selector,
|
||||
state,
|
||||
|
||||
@ -37,10 +37,7 @@ describe.skipIf(!React.version.startsWith('18'))(
|
||||
'ssr behavior with react 18',
|
||||
() => {
|
||||
it('should handle different states between server and client correctly', async () => {
|
||||
const { hydrateRoot } =
|
||||
await vi.importActual<typeof import('react-dom/client')>(
|
||||
'react-dom/client',
|
||||
)
|
||||
const { hydrateRoot }: any = await vi.importActual('react-dom/client')
|
||||
|
||||
const markup = renderToString(
|
||||
<React.Suspense fallback={<div>Loading...</div>}>
|
||||
@ -72,10 +69,7 @@ describe.skipIf(!React.version.startsWith('18'))(
|
||||
bears: 0,
|
||||
}))
|
||||
|
||||
const { hydrateRoot } =
|
||||
await vi.importActual<typeof import('react-dom/client')>(
|
||||
'react-dom/client',
|
||||
)
|
||||
const { hydrateRoot }: any = await vi.importActual('react-dom/client')
|
||||
|
||||
const Component = () => {
|
||||
const bears = useStore((state) => state.bears)
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
import { resolve } from 'path'
|
||||
// eslint-disable-next-line import/extensions
|
||||
import { defineConfig } from 'vitest/config'
|
||||
|
||||
export default defineConfig({
|
||||
resolve: {
|
||||
alias: [
|
||||
{ find: /^zustand$/, replacement: './src/index.ts' },
|
||||
{ find: /^zustand(.*)$/, replacement: './src/$1.ts' },
|
||||
{ find: /^zustand$/, replacement: resolve('./src/index.ts') },
|
||||
{ find: /^zustand(.*)$/, replacement: resolve('./src/$1.ts') },
|
||||
],
|
||||
},
|
||||
test: {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user