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
10 changes: 10 additions & 0 deletions .changeset/fix-raw-imports.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
"@cloudflare/vitest-pool-workers": patch
---

fix: allow Vite query parameters like `?raw` on `.sql` file imports

Importing `.sql` files with Vite query parameters (e.g., `import sql from "./query.sql?raw"`) would fail with "No such module" errors in vitest-pool-workers 0.12.x. Both import styles now work:

- `import sql from "./query.sql?raw"` (Vite handles the `?raw` transform)
- `import sql from "./query.sql"` (loaded as Text module)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SELECT * FROM users WHERE id = 1;
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,9 @@ declare module "ext-dep" {
var x: number;
export default x;
}

// .sql files are loaded as Text modules by default in wrangler
declare module "*.sql" {
const content: string;
export default content;
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import { instrument } from "@microlabs/otel-cf-workers";
import { Utils } from "discord-api-types/v10";
import dep from "ext-dep";
import { assert, describe, test } from "vitest";
import sqlPlain from "../src/test.sql";
import sqlRaw from "../src/test.sql?raw";

describe("test", () => {
test("resolves commonjs directory dependencies correctly", async () => {
Expand All @@ -17,4 +19,10 @@ describe("test", () => {
test("resolves dependency with mapping on the browser field", async () => {
assert.isFunction(instrument);
});

// Regression test for https://github.com/cloudflare/workers-sdk/issues/12049
// Vite query parameters like ?raw should be handled by Vite, not module rules
test("resolves file with ?raw query parameter", async () => {
assert.equal(sqlRaw, sqlPlain);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"compilerOptions": {
"types": [
"@cloudflare/workers-types/experimental",
"@cloudflare/vitest-pool-workers" // For `cloudflare:test` types
"@cloudflare/vitest-pool-workers", // For `cloudflare:test` types
"vite/client" // For `?raw`, `?url`, etc. import types
]
}
}
4 changes: 3 additions & 1 deletion packages/vitest-pool-workers/src/pool/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -936,7 +936,9 @@ async function runTests(
const maybeRule = compiledRules.find((rule) =>
testRegExps(rule.include, specifier)
);
if (maybeRule !== undefined) {

// Skip if specifier already has query params (e.g. `?raw`), letting Vite handle it.
if (maybeRule !== undefined && !specifier.includes("?")) {
const externalize = specifier + `?mf_vitest_force=${maybeRule.type}`;
return { externalize };
}
Expand Down
Loading