import { env, createExecutionContext, waitOnExecutionContext, SELF } from 'cloudflare:test'; import { describe, it, expect } from 'vitest'; import worker from '../src'; describe('Hello World user worker', () => { describe('request for /message', () => { it('/ responds with "Hello, World!" (unit style)', async () => { const request = new Request('http://example.com/message'); // Create an empty context to pass to `worker.fetch()`. const ctx = createExecutionContext(); const response = await worker.fetch(request, env, ctx); // Wait for all `Promise`s passed to `ctx.waitUntil()` to settle before running test assertions await waitOnExecutionContext(ctx); expect(await response.text()).toMatchInlineSnapshot(`"Hello, World!"`); }); it('responds with "Hello, World!" (integration style)', async () => { const request = new Request('http://example.com/message'); const response = await SELF.fetch(request); expect(await response.text()).toMatchInlineSnapshot(`"Hello, World!"`); }); }); describe('request for /random', () => { it('/ responds with a random UUID (unit style)', async () => { const request = new Request('http://example.com/random'); // Create an empty context to pass to `worker.fetch()`. const ctx = createExecutionContext(); const response = await worker.fetch(request, env, ctx); // Wait for all `Promise`s passed to `ctx.waitUntil()` to settle before running test assertions await waitOnExecutionContext(ctx); expect(await response.text()).toMatch(/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/); }); it('responds with a random UUID (integration style)', async () => { const request = new Request('http://example.com/random'); const response = await SELF.fetch(request); expect(await response.text()).toMatch(/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/); }); }); });