Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .changeset/breezy-tools-lose.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/bump-vulnerable-deps-create-cloudflare.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/bump-vulnerable-deps-miniflare.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/bump-vulnerable-deps-pages-shared.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/bump-vulnerable-deps-vitest-pool-workers.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/bump-vulnerable-deps-wrangler.md

This file was deleted.

12 changes: 0 additions & 12 deletions .changeset/dependabot-update-12795.md

This file was deleted.

12 changes: 0 additions & 12 deletions .changeset/dependabot-update-12811.md

This file was deleted.

12 changes: 0 additions & 12 deletions .changeset/dependabot-update-12827.md

This file was deleted.

24 changes: 0 additions & 24 deletions .changeset/evil-rivers-draw.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/fix-d1-json-null-values.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/fix-format-errors-missing-await.md

This file was deleted.

9 changes: 0 additions & 9 deletions .changeset/fix-wasm-query-string-windows.md

This file was deleted.

9 changes: 0 additions & 9 deletions .changeset/funny-mails-hammer.md

This file was deleted.

26 changes: 26 additions & 0 deletions .changeset/kind-socks-beam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
"wrangler": minor
---

Support disabling persistence in `unstable_startWorker()` and `unstable_dev()`

You can now disable persistence entirely by setting `persist: false` in the `dev` options:

```typescript
const worker = await unstable_dev("./src/worker.ts", {
persist: false,
});
```

Or when using `unstable_startWorker()`:

```typescript
const worker = await unstable_startWorker({
entrypoint: "./src/worker.ts",
dev: {
persist: false,
},
});
```

This is useful for testing scenarios where you want to ensure a clean state on each run without any persisted data from previous runs.
6 changes: 0 additions & 6 deletions .changeset/late-humans-win.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/local-explorer-cors.md

This file was deleted.

56 changes: 56 additions & 0 deletions .changeset/many-fishes-raise.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
"@cloudflare/vitest-pool-workers": minor
---

Support Vitest 4 in `@cloudflare/vitest-pool-workers`.

This a breaking change to the `@cloudflare/vitest-pool-workers` integration in order to support Vitest v4. Along with supporting Vitest v4 (and dropping support for Vitest v2 and v3), we've made a number of changes that may require changes to your tests. Our aim has been to improve stability & the foundations of `@cloudflare/vitest-pool-workers` as we move towards a v1 release of the package.

We've made a codemod to make the migration easier, which will make the required changes to your config file:

```sh
npx jscodeshift -t node_modules/@cloudflare/vitest-pool-workers/dist/codemods/vitest-v3-to-v4.mjs vitest.config.ts
```

Or, without installing the package first:

```sh
npx jscodeshift -t https://unpkg.com/@cloudflare/vitest-pool-workers/dist/codemods/vitest-v3-to-v4.mjs --parser=ts vitest.config.ts
```

- **Config API:** `defineWorkersProject` and `defineWorkersConfig` from `@cloudflare/vitest-pool-workers/config` have been replaced with a `cloudflareTest()` Vite plugin exported from `@cloudflare/vitest-pool-workers`. The `test.poolOptions.workers` options are now passed directly to `cloudflareTest()`:

Before:

```ts
import { defineWorkersProject } from "@cloudflare/vitest-pool-workers/config";

export default defineWorkersProject({
test: {
poolOptions: {
workers: {
wrangler: { configPath: "./wrangler.jsonc" },
},
},
},
});
```

After:

```ts
import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
import { defineConfig } from "vitest/config";

export default defineConfig({
plugins: [
cloudflareTest({
wrangler: { configPath: "./wrangler.jsonc" },
}),
],
});
```

- **`isolatedStorage` & `singleWorker`:** These have been removed in favour of a simpler isolation model that more closely matches Vitest. Storage isolation is now on a per test file basis, and you can make your test files share the same storage by using the Vitest flags `--max-workers=1 --no-isolate`
- **`import { env, SELF } from "cloudflare:test"`:** These have been removed in favour of `import { env, exports } from "cloudflare:workers"`. `exports.default.fetch()` has the same behaviour as `SELF.fetch()`, except that it doesn't expose Assets. To test your assets, write an integration test using [`startDevWorker()`](https://developers.cloudflare.com/workers/testing/unstable_startworker/)
- **`import { fetchMock } from "cloudflare:test"`:** This has been removed. Instead, [mock `globalThis.fetch`](https://github.com/cloudflare/workers-sdk/blob/main/fixtures/vitest-pool-workers-examples/request-mocking/test/imperative.test.ts) or use ecosystem libraries like [MSW (recommended)](https://mswjs.io/).
7 changes: 0 additions & 7 deletions .changeset/optional-exchange-url.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/reenable-qwik-tests.md

This file was deleted.

11 changes: 0 additions & 11 deletions .changeset/remove-prewarm-inspector.md

This file was deleted.

9 changes: 9 additions & 0 deletions .changeset/ripe-pants-start.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"create-cloudflare": patch
---

Generate `app/env.d.ts` and `server/env.d.ts` for Nuxt applications

Previously, only a top-level `env.d.ts` was created, which meant server files didn't receive Cloudflare types. Now the CLI generates separate `app/env.d.ts` and `server/env.d.ts` files, both importing from a shared `_cloudflare/env.d.ts` to avoid duplication.

This ensures Cloudflare types are available in both app and server directories.
7 changes: 0 additions & 7 deletions .changeset/thirty-mammals-live.md

This file was deleted.

8 changes: 0 additions & 8 deletions .changeset/tidy-hairs-notice.md

This file was deleted.

12 changes: 0 additions & 12 deletions .changeset/tough-states-sip.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ describe("getPlatformProxy - env", () => {
vi.spyOn(console, "log").mockImplementation(() => {});
vi.spyOn(console, "error").mockImplementation(() => {});
warn = vi.spyOn(console, "warn").mockImplementation(() => {});
warn.mockClear();
});

describe("var bindings", () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
declare module "cloudflare:test" {
interface ProvidedEnv extends Env {}
declare namespace Cloudflare {
interface Env {}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { defineWorkersProject } from "@cloudflare/vitest-pool-workers/config";
import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
import { defineConfig } from "vitest/config";

export default defineConfig({
plugins: [
cloudflareTest({
remoteBindings: false,
wrangler: { configPath: "./wrangler.jsonc" },
}),
],

export default defineWorkersProject({
test: {
globalSetup: ["./global-setup.ts"],
poolOptions: {
workers: {
singleWorker: true,
remoteBindings: false,
wrangler: { configPath: "./wrangler.jsonc" },
},
},
},
});
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
declare module "cloudflare:test" {
// Controls the type of `import("cloudflare:test").env`
interface ProvidedEnv {
declare namespace Cloudflare {
interface Env {
WORKER: Fetcher;
}
}
Loading
Loading