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: