mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-18 09:05:55 +00:00
This PR Bumps the `vitest` across the monorepo: AI Disclaimer : **AI Used** | Package | From | To | |---|---|---| | `vitest` | `^3.2.4` | `^4.1.6` | | `@vitest/browser` | `^3.2.4` | `^4.1.6` | | `@vitest/browser-playwright` | _(new)_ | `^4.1.6` | | `vitest-browser-react/-vue/-svelte` | `^1.0.0` | `^2.x` (required by vitest 4) | Covers **21 `package.json` files** for `vitest`/`@vitest/browser` + the **7 browser-mode packages** that need the new `@vitest/browser-playwright` provider. ### Code changes required by vitest 4 Per the [official migration guide](https://vitest.dev/guide/migration.html#vitest-4): - **Browser provider rework** — `provider: 'playwright'` (string) → `playwright()` factory. Migrated 7 `vitest.config.ts` files (`@uppy/{url,dashboard,golden-retriever,xhr-upload}` + `examples/{react,vue,sveltekit}`). - **Deprecated `@vitest/browser/context` imports** → `vitest/browser`. Migrated 8 test files. - **`vi.fn(arrow)` no longer constructible with `new`.** Vitest 4 made `vi.fn()` callable as a constructor but arrow-fn implementations throw. Switched `@uppy/transloadit`'s `EventSource` mock to a regular function: ```js global.EventSource = vi.fn(function MockEventSource() { return { /* ... */ } }) ``` - **`Mock<T>` generic shape changed.** `ReturnType<typeof vi.fn>` now resolves to `Mock<Procedure | Constructable>` (not directly callable). Updated `@uppy/core`'s two `acquirerPlugin*.ts` mock helpers to use an explicit `Mock<(...args: any[]) => any>`. - **`vitest-browser-*` v2 made `render()` async.** Added `await render(...)` in the 3 example test files. - **`@types/node` needed in TS program for 4 packages** whose test files import `node:assert`/`node:fs`/`node:path` (`@uppy/{core,compressor,aws-s3,store-default}`). Vitest 3 transitively pulled in `@types/node`; vitest 4 does not. Added the devDep + `types: ["preact", "node"]` to those four tsconfigs. - **`@uppy/utils` `AbortController.test.ts`** — vitest 4's jsdom env puts jsdom's `Event` on `globalThis`, while Node's `AbortController` fires Node-realm `Event`s, breaking cross-realm `instanceof`. Added `// @vitest-environment node` to that one file (DOM-agnostic test, no behavior change). ### Notes - This PR is built on top of `uppy-upgrade-deps-v2` (the no-code-changes dep bumps PR) and inherits those. If merging out of order, rebase onto `main` after `uppy-upgrade-deps-v2` lands. --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| src | ||
| test | ||
| .stackblitzrc | ||
| index.html | ||
| package.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||