From b2a1791ab653ed2f7e46d550eef8ad55238fd0d1 Mon Sep 17 00:00:00 2001
From: emily-shen <69125074+emily-shen@users.noreply.github.com>
Date: Thu, 26 Sep 2024 16:23:20 +0100
Subject: [PATCH] add assets only vitest fixture
---
.../workers-assets-only/README.md | 5 ++
.../workers-assets-only/public/index.html | 11 +++
.../test/assets-only.test.ts | 13 ++++
.../workers-assets-only/test/tsconfig.json | 4 +
.../workers-assets-only/tsconfig.json | 4 +
.../workers-assets-only/vitest.config.ts | 19 +++++
.../workers-assets-only/wrangler.toml | 8 ++
pnpm-lock.yaml | 78 ++-----------------
8 files changed, 69 insertions(+), 73 deletions(-)
create mode 100644 fixtures/vitest-pool-workers-examples/workers-assets-only/README.md
create mode 100644 fixtures/vitest-pool-workers-examples/workers-assets-only/public/index.html
create mode 100644 fixtures/vitest-pool-workers-examples/workers-assets-only/test/assets-only.test.ts
create mode 100644 fixtures/vitest-pool-workers-examples/workers-assets-only/test/tsconfig.json
create mode 100644 fixtures/vitest-pool-workers-examples/workers-assets-only/tsconfig.json
create mode 100644 fixtures/vitest-pool-workers-examples/workers-assets-only/vitest.config.ts
create mode 100644 fixtures/vitest-pool-workers-examples/workers-assets-only/wrangler.toml
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-only/README.md b/fixtures/vitest-pool-workers-examples/workers-assets-only/README.md
new file mode 100644
index 000000000000..979eb08bbefc
--- /dev/null
+++ b/fixtures/vitest-pool-workers-examples/workers-assets-only/README.md
@@ -0,0 +1,5 @@
+# ✅ workers-with-assets-only
+
+This example contains assets without a Worker script.
+
+An asset-only project can only be tested integration-style using the SELF binding, as there is no Worker to import and unit test.
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-only/public/index.html b/fixtures/vitest-pool-workers-examples/workers-assets-only/public/index.html
new file mode 100644
index 000000000000..6e37f21244cc
--- /dev/null
+++ b/fixtures/vitest-pool-workers-examples/workers-assets-only/public/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+ Hello, World!
+
+
+Asset index.html
+
+
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-only/test/assets-only.test.ts b/fixtures/vitest-pool-workers-examples/workers-assets-only/test/assets-only.test.ts
new file mode 100644
index 000000000000..24400367ec34
--- /dev/null
+++ b/fixtures/vitest-pool-workers-examples/workers-assets-only/test/assets-only.test.ts
@@ -0,0 +1,13 @@
+import { env, SELF } from "cloudflare:test";
+import { describe, expect, it } from "vitest";
+
+// There is no Worker so we can't import one and unit test
+it("can test asset serving (integration style)", async () => {
+ let response = await SELF.fetch("http://example.com/index.html");
+ expect(await response.text()).toContain("Asset index.html");
+
+ // no such asset
+ response = await SELF.fetch("http://example.com/message");
+ expect(await response.text()).toBeFalsy();
+ expect(response.status).toBe(404);
+});
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-only/test/tsconfig.json b/fixtures/vitest-pool-workers-examples/workers-assets-only/test/tsconfig.json
new file mode 100644
index 000000000000..40d245572f5f
--- /dev/null
+++ b/fixtures/vitest-pool-workers-examples/workers-assets-only/test/tsconfig.json
@@ -0,0 +1,4 @@
+{
+ "extends": "../../tsconfig.workerd-test.json",
+ "include": ["./**/*.ts"]
+}
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-only/tsconfig.json b/fixtures/vitest-pool-workers-examples/workers-assets-only/tsconfig.json
new file mode 100644
index 000000000000..90e58bf03ef0
--- /dev/null
+++ b/fixtures/vitest-pool-workers-examples/workers-assets-only/tsconfig.json
@@ -0,0 +1,4 @@
+{
+ "extends": "../tsconfig.node.json",
+ "include": ["./*.ts"]
+}
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-only/vitest.config.ts b/fixtures/vitest-pool-workers-examples/workers-assets-only/vitest.config.ts
new file mode 100644
index 000000000000..d0a53e2112b8
--- /dev/null
+++ b/fixtures/vitest-pool-workers-examples/workers-assets-only/vitest.config.ts
@@ -0,0 +1,19 @@
+import { defineWorkersProject } from "@cloudflare/vitest-pool-workers/config";
+
+export default defineWorkersProject({
+ test: {
+ poolOptions: {
+ workers: {
+ wrangler: { configPath: "./wrangler.toml" },
+ miniflare: {
+ assets: {
+ directory: "./public",
+ assetConfig: {
+ html_handling: "none",
+ },
+ },
+ },
+ },
+ },
+ },
+});
diff --git a/fixtures/vitest-pool-workers-examples/workers-assets-only/wrangler.toml b/fixtures/vitest-pool-workers-examples/workers-assets-only/wrangler.toml
new file mode 100644
index 000000000000..d58bc3afe630
--- /dev/null
+++ b/fixtures/vitest-pool-workers-examples/workers-assets-only/wrangler.toml
@@ -0,0 +1,8 @@
+#:schema node_modules/wrangler/config-schema.json
+name = "workers-static-assets-only"
+compatibility_date = "2024-09-19"
+compatibility_flags = ["nodejs_compat"]
+
+[assets]
+directory = "./public"
+html_handling = "none"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 501cda07abe9..0733b7df30c9 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -166,24 +166,6 @@ importers:
specifier: workspace:*
version: link:../../packages/wrangler
- fixtures/assets-vitest:
- devDependencies:
- '@cloudflare/vitest-pool-workers':
- specifier: workspace:*
- version: link:../../packages/vitest-pool-workers
- '@cloudflare/workers-types':
- specifier: ^4.20240919.0
- version: 4.20240919.0
- typescript:
- specifier: ^5.5.2
- version: 5.5.4
- vitest:
- specifier: catalog:default
- version: 2.1.1(@types/node@20.8.3)(@vitest/ui@1.6.0)(msw@2.3.0(typescript@5.5.4))(supports-color@9.2.2)
- wrangler:
- specifier: ^3.60.3
- version: 3.78.8(@cloudflare/workers-types@4.20240919.0)
-
fixtures/d1-worker-app:
devDependencies:
wrangler:
@@ -2513,10 +2495,6 @@ packages:
peerDependencies:
react: ^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0
- '@cloudflare/kv-asset-handler@0.3.4':
- resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==}
- engines: {node: '>=16.13'}
-
'@cloudflare/style-const@5.7.3':
resolution: {integrity: sha512-N9Y8bcFXoO7htm+sSVsBmQOVbjLeEY2hy1CBmvt0AoH1zWvs3izwJrnlL0ee4kJ6DkyjaY6SIAkUGUtTOApF3Q==}
peerDependencies:
@@ -2589,9 +2567,6 @@ packages:
'@cloudflare/workers-types@4.20240925.0':
resolution: {integrity: sha512-KpqyRWvanEuXgBTKYFzRp4NsWOEcswxjsPRSre1zYQcODmc8PUrraVHQUmgvkJgv3FzB+vI9xm7J6oE4MmZHCA==}
- '@cloudflare/workers-types@4.20240919.0':
- resolution: {integrity: sha512-DZwTpZVAV+fKTLxo6ntC2zMNRL/UJwvtMKUt/U7ZyJdR+t0qcBUZGx8jLi9gOFWYxkzO3s7slajwkR2hQRPXYQ==}
-
'@colors/colors@1.5.0':
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
@@ -4861,9 +4836,6 @@ packages:
resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
engines: {node: '>=0.11'}
- date-fns@3.6.0:
- resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==}
-
date-time@3.1.0:
resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==}
engines: {node: '>=6'}
@@ -6637,11 +6609,6 @@ packages:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
- miniflare@3.20240909.5:
- resolution: {integrity: sha512-3Am3D9LGDljEKWnylSy6hFg3LFnNCo9DlWqZFcL7QkuIhQwN6Sqz1d6xQCkgft7FVXnykG6VNpz0NrjdW+mBjg==}
- engines: {node: '>=16.13'}
- hasBin: true
-
minimatch@10.0.1:
resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
engines: {node: 20 || >=22}
@@ -8733,16 +8700,6 @@ packages:
engines: {node: '>=16'}
hasBin: true
- wrangler@3.78.8:
- resolution: {integrity: sha512-tnJ++KY0EeQKa7Pm5Zxl1Cnf1QcmlLit2CohCpTEFHSgCzwzwViuxFL8JQvVKj8Qb65ouBNbfPZnlqrEyGpbew==}
- engines: {node: '>=16.17.0'}
- hasBin: true
- peerDependencies:
- '@cloudflare/workers-types': ^4.20240909.0
- peerDependenciesMeta:
- '@cloudflare/workers-types':
- optional: true
-
wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
@@ -9673,10 +9630,6 @@ snapshots:
dependencies:
react: 18.3.1
- '@cloudflare/kv-asset-handler@0.3.4':
- dependencies:
- mime: 3.0.0
-
'@cloudflare/style-const@5.7.3(react@18.3.1)':
dependencies:
'@cloudflare/types': 6.23.6(react@18.3.1)
@@ -12263,8 +12216,6 @@ snapshots:
dependencies:
'@babel/runtime': 7.22.5
- date-fns@3.6.0: {}
-
date-time@3.1.0:
dependencies:
time-zone: 1.0.0
@@ -14300,25 +14251,6 @@ snapshots:
min-indent@1.0.1: {}
- miniflare@3.20240909.5:
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- acorn: 8.11.3
- acorn-walk: 8.3.2
- capnp-ts: 0.7.0(patch_hash=l4yimnxyvkiyj6alnps2ec3sii)
- exit-hook: 2.2.1
- glob-to-regexp: 0.4.1
- stoppable: 1.1.0
- undici: 5.28.4
- workerd: 1.20240909.0
- ws: 8.17.1
- youch: 3.2.3
- zod: 3.22.3
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
minimatch@10.0.1:
dependencies:
brace-expansion: 2.0.1
@@ -16515,11 +16447,11 @@ snapshots:
workerd@1.20240925.0:
optionalDependencies:
- '@cloudflare/workerd-darwin-64': 1.20240909.0
- '@cloudflare/workerd-darwin-arm64': 1.20240909.0
- '@cloudflare/workerd-linux-64': 1.20240909.0
- '@cloudflare/workerd-linux-arm64': 1.20240909.0
- '@cloudflare/workerd-windows-64': 1.20240909.0
+ '@cloudflare/workerd-darwin-64': 1.20240925.0
+ '@cloudflare/workerd-darwin-arm64': 1.20240925.0
+ '@cloudflare/workerd-linux-64': 1.20240925.0
+ '@cloudflare/workerd-linux-arm64': 1.20240925.0
+ '@cloudflare/workerd-windows-64': 1.20240925.0
wrap-ansi@6.2.0:
dependencies: