From 7c05a5c61dce2420326c43080e0e554b43dd9e96 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 29 Dec 2025 13:07:00 +0100 Subject: [PATCH] chore: remove zustand (#9359) --- pnpm-lock.yaml | 42 ++++--------------- test/core/__mocks__/@vitest/test-fn.ts | 7 ++++ test/core/__mocks__/zustand.ts | 10 ----- test/core/deps/dep-fn/index.d.ts | 2 + test/core/deps/dep-fn/index.js | 3 ++ test/core/deps/dep-fn/package.json | 5 +++ test/core/package.json | 4 +- test/core/src/mocks/test-fn-magic.ts | 5 +++ test/core/src/mocks/zustand-magic.ts | 5 --- test/core/test/mocking/self-importing.test.ts | 16 +++---- 10 files changed, 40 insertions(+), 59 deletions(-) create mode 100644 test/core/__mocks__/@vitest/test-fn.ts delete mode 100644 test/core/__mocks__/zustand.ts create mode 100644 test/core/deps/dep-fn/index.d.ts create mode 100644 test/core/deps/dep-fn/index.js create mode 100644 test/core/deps/dep-fn/package.json create mode 100644 test/core/src/mocks/test-fn-magic.ts delete mode 100644 test/core/src/mocks/zustand-magic.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c33b6db0c..880b2d666 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1319,6 +1319,9 @@ importers: '@vitest/test-dep2': specifier: file:./deps/dep2 version: file:test/core/deps/dep2 + '@vitest/test-fn': + specifier: file:./deps/dep-fn + version: file:test/core/deps/dep-fn '@vitest/utils': specifier: workspace:* version: link:../../packages/utils @@ -1370,9 +1373,6 @@ importers: vue: specifier: 'catalog:' version: 3.5.25(typescript@5.9.3) - zustand: - specifier: ^4.5.7 - version: 4.5.7(@types/react@19.2.7)(react@19.2.0) test/coverage-test: devDependencies: @@ -4654,6 +4654,9 @@ packages: '@vitest/test-deps-url@file:test/optimize-deps/dep-url': resolution: {directory: test/optimize-deps/dep-url, type: directory} + '@vitest/test-fn@file:test/core/deps/dep-fn': + resolution: {directory: test/core/deps/dep-fn, type: directory} + '@volar/language-core@1.11.1': resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} @@ -9205,11 +9208,6 @@ packages: urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - use-sync-external-store@1.4.0: - resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - userhome@1.0.0: resolution: {integrity: sha512-ayFKY3H+Pwfy4W98yPdtH1VqH4psDeyW8lYYFzfecR9d6hqLpqhecktvYR3SEEXt7vG0S1JEpciI3g94pMErig==} engines: {node: '>= 0.8.0'} @@ -9692,21 +9690,6 @@ packages: zone.js@0.15.1: resolution: {integrity: sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==} - zustand@4.5.7: - resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0.6' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -12779,6 +12762,8 @@ snapshots: '@vitest/test-deps-url@file:test/optimize-deps/dep-url': {} + '@vitest/test-fn@file:test/core/deps/dep-fn': {} + '@volar/language-core@1.11.1': dependencies: '@volar/source-map': 1.11.1 @@ -18101,10 +18086,6 @@ snapshots: urlpattern-polyfill@10.0.0: {} - use-sync-external-store@1.4.0(react@19.2.0): - dependencies: - react: 19.2.0 - userhome@1.0.0: {} util-deprecate@1.0.2: {} @@ -18723,13 +18704,6 @@ snapshots: zone.js@0.15.1: {} - zustand@4.5.7(@types/react@19.2.7)(react@19.2.0): - dependencies: - use-sync-external-store: 1.4.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.2.7 - react: 19.2.0 - zwitch@2.0.4: {} zx@8.8.5: {} diff --git a/test/core/__mocks__/@vitest/test-fn.ts b/test/core/__mocks__/@vitest/test-fn.ts new file mode 100644 index 000000000..5f6e3ce55 --- /dev/null +++ b/test/core/__mocks__/@vitest/test-fn.ts @@ -0,0 +1,7 @@ +import actualCreate from '@vitest/test-fn' +import { vi } from 'vitest' + +// when creating a store, we get its initial state, create a reset function and add it in the set +export default vi.fn((createState) => { + return actualCreate(createState) +}) diff --git a/test/core/__mocks__/zustand.ts b/test/core/__mocks__/zustand.ts deleted file mode 100644 index 45d1e0f5e..000000000 --- a/test/core/__mocks__/zustand.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { vi } from 'vitest' -import actualCreate from 'zustand' - -// when creating a store, we get its initial state, create a reset function and add it in the set -const create = vi.fn((createState) => { - const store = actualCreate(createState) - return store -}) - -export default create diff --git a/test/core/deps/dep-fn/index.d.ts b/test/core/deps/dep-fn/index.d.ts new file mode 100644 index 000000000..c2590d805 --- /dev/null +++ b/test/core/deps/dep-fn/index.d.ts @@ -0,0 +1,2 @@ +declare function create(arg?: T): T +export default create \ No newline at end of file diff --git a/test/core/deps/dep-fn/index.js b/test/core/deps/dep-fn/index.js new file mode 100644 index 000000000..d8af19a46 --- /dev/null +++ b/test/core/deps/dep-fn/index.js @@ -0,0 +1,3 @@ +export default function (arg) { + return arg ?? function () {} +} diff --git a/test/core/deps/dep-fn/package.json b/test/core/deps/dep-fn/package.json new file mode 100644 index 000000000..6905b83c1 --- /dev/null +++ b/test/core/deps/dep-fn/package.json @@ -0,0 +1,5 @@ +{ + "name": "@vitest/test-fn", + "type": "module", + "exports": "./index.js" +} diff --git a/test/core/package.json b/test/core/package.json index fb5fea779..09c334975 100644 --- a/test/core/package.json +++ b/test/core/package.json @@ -24,6 +24,7 @@ "@vitest/test-dep-nested-cjs": "file:./deps/dep-nested-cjs", "@vitest/test-dep1": "file:./deps/dep1", "@vitest/test-dep2": "file:./deps/dep2", + "@vitest/test-fn": "file:./deps/dep-fn", "@vitest/utils": "workspace:*", "@vitest/web-worker": "workspace:^", "@vueuse/integrations": "^10.11.1", @@ -40,7 +41,6 @@ "vitest": "workspace:*", "vitest-environment-custom": "file:./vitest-environment-custom", "vitest-package-exports": "^0.1.1", - "vue": "catalog:", - "zustand": "^4.5.7" + "vue": "catalog:" } } diff --git a/test/core/src/mocks/test-fn-magic.ts b/test/core/src/mocks/test-fn-magic.ts new file mode 100644 index 000000000..34bb7668e --- /dev/null +++ b/test/core/src/mocks/test-fn-magic.ts @@ -0,0 +1,5 @@ +import fn from '@vitest/test-fn' + +export function magic() { + return fn() +} diff --git a/test/core/src/mocks/zustand-magic.ts b/test/core/src/mocks/zustand-magic.ts deleted file mode 100644 index 945d29cfd..000000000 --- a/test/core/src/mocks/zustand-magic.ts +++ /dev/null @@ -1,5 +0,0 @@ -import zustand from 'zustand' - -export function magic() { - return zustand() -} diff --git a/test/core/test/mocking/self-importing.test.ts b/test/core/test/mocking/self-importing.test.ts index 39071801a..902c71481 100644 --- a/test/core/test/mocking/self-importing.test.ts +++ b/test/core/test/mocking/self-importing.test.ts @@ -1,17 +1,17 @@ +import fn from '@vitest/test-fn' import { describe, expect, test, vi } from 'vitest' -import zustand from 'zustand' -import { magic } from '../../src/mocks/zustand-magic' +import { magic } from '../../src/mocks/test-fn-magic' -vi.mock('zustand') +vi.mock('@vitest/test-fn') -describe('zustand didn\'t go into an infinite loop', () => { - test('zustand is mocked', () => { - expect(vi.isMockFunction(zustand)).toBe(true) +describe('fn didn\'t go into an infinite loop', () => { + test('fn is mocked', () => { + expect(vi.isMockFunction(fn)).toBe(true) }) - test('magic calls zustand', () => { + test('magic calls fn', () => { const store = magic() - expect(zustand).toHaveBeenCalled() + expect(fn).toHaveBeenCalled() expect(store).toBeTypeOf('function') }) }) -- 2.51.2