Files
vercel__workflow/turbo.json
T

39 lines
767 B
JSON
Raw Normal View History

{
"$schema": "https://turborepo.com/schema.json",
"ui": "tui",
"tasks": {
"build": {
"dependsOn": ["^build"],
Refactor e2e tests to no longer use "trigger" endpoint (#958) ## Summary Refactors the E2E tests to call `start()` from `workflow/api` directly instead of going through the `/api/trigger` HTTP endpoint in each workbench app. This removes a layer of indirection — the tests now use the same API that users would use to start workflows programmatically. ### Before ```ts const run = await triggerWorkflow('addTenWorkflow', [123]); const returnValue = await getWorkflowReturnValue(run.runId); ``` - `triggerWorkflow()` sent an HTTP POST to `/api/trigger` on the workbench app - The workbench app looked up the workflow function, called `start()`, and returned the run ID - `getWorkflowReturnValue()` polled `GET /api/trigger?runId=...` until the workflow completed ### After ```ts const run = await start(await e2e('addTenWorkflow'), [123]); const returnValue = await run.returnValue; ``` - `e2e()` / `getWorkflowMetadata()` fetches the manifest from `/.well-known/workflow/v1/manifest.json` to look up the correct `workflowId` - `start()` is called directly from the test process via the configured World - `run.returnValue` polls for completion via the World (no HTTP polling endpoint needed) ### Changes **`packages/core/e2e/e2e.test.ts`** - Removed `triggerWorkflow()` and `getWorkflowReturnValue()` helpers - Added `fetchManifest()` to fetch and cache the workflow manifest from the deployment - Added `getWorkflowMetadata(file, fn)` to look up `{ workflowId }` from the manifest - Added `e2e(fn)` shorthand for the common case of `workflows/99_e2e.ts` - All tests call `start()` and `run.returnValue` directly - Error tests use `.catch()` to inspect `WorkflowRunFailedError` - Output stream tests use `run.getReadable()` directly (skipped on local world where cross-process streaming isn't supported) - `beforeAll` configures the local World with the correct data directory and base URL - Pages Router tests use `startWorkflowViaHttp()` to specifically validate the HTTP trigger path **Workbench apps (hono, express, fastify, nest)** - Removed `/api/trigger` route handlers - Kept `/api/hook`, `/api/test-direct-step-call`, `/api/test-health-check` endpoints - Re-added `_workflows.js` side-effect import for hono/express/fastify to maintain Nitro's HMR dependency graph **Deleted trigger-only route files** from: nextjs-turbopack, nextjs-webpack, vite, sveltekit, astro, nuxt, nitro-v2, nitro-v3, example **`.github/workflows/tests.yml`** - Added `WORKFLOW_PUBLIC_MANIFEST: '1'` to all E2E test jobs ### Dependencies Stacked on #963 which adds `WORKFLOW_PUBLIC_MANIFEST` support to all framework builders.
2026-02-06 16:25:47 -08:00
"env": ["WORKFLOW_PUBLIC_MANIFEST"],
"inputs": [
"$TURBO_DEFAULT$",
"$TURBO_ROOT$/packages/tsconfig/base.json",
"$TURBO_ROOT$/pnpm-workspace.yaml",
"$TURBO_ROOT$/.node-version"
],
2025-11-29 21:21:49 -08:00
"outputs": [
"dist/**",
"build",
".svelte-kit",
".vercel/output",
".output/**"
]
},
"dev": {
"dependsOn": ["^build"],
"cache": false
},
"typecheck": {
"dependsOn": ["^build"],
"cache": false
},
"test": {
"dependsOn": ["^build"],
"cache": false
},
"clean": {
"cache": false
}
}
}