From 79117e463203febe13943effa60469cba89cf599 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Wed, 28 Oct 2026 17:00:38 +0100 Subject: [PATCH] test(e2e): Remove node-flue-send-to-sentry node-flue covers the same Flue turns against real OpenRouter, with more checks, through the event proxy. Co-Authored-By: Claude Opus 5.5 --- .../node-flue-send-to-sentry/.gitignore | 7 -- .../node-flue-send-to-sentry/flue.config.ts | 5 - .../node-flue-send-to-sentry/package.json | 49 -------- .../playwright.config.ts | 24 ---- .../pnpm-workspace.yaml | 6 - .../node-flue-send-to-sentry/sentry-init.ts | 11 -- .../src/agents/hello.ts | 50 --------- .../node-flue-send-to-sentry/src/app.ts | 10 -- .../tests/dataloader.test.ts | 25 ----- .../tests/errors.test.ts | 36 ------ .../tests/flue.test.ts | 105 ------------------ .../node-flue-send-to-sentry/tests/utils.ts | 60 ---------- .../node-flue-send-to-sentry/tsconfig.json | 14 --- .../node-flue-send-to-sentry/vite.config.ts | 7 -- 14 files changed, 409 deletions(-) delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/.gitignore delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/flue.config.ts delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/package.json delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/playwright.config.ts delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/pnpm-workspace.yaml delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/sentry-init.ts delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/src/agents/hello.ts delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/src/app.ts delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/dataloader.test.ts delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/errors.test.ts delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/flue.test.ts delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/utils.ts delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tsconfig.json delete mode 100644 dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/vite.config.ts diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/.gitignore b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/.gitignore deleted file mode 100644 index 2685f6ec088a..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -dist -.flue -*.tsbuildinfo -results.junit.xml -test-results -playwright-report diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/flue.config.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/flue.config.ts deleted file mode 100644 index a31c8523a9a7..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/flue.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { defineConfig } from '@flue/runtime/config'; - -export default defineConfig({ - target: 'node', -}); diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/package.json b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/package.json deleted file mode 100644 index 409652d5c19e..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "node-flue-send-to-sentry", - "description": "The Flue integration as a user runs it: a built Flue agent server, real tool-calling turns through OpenRouter, and the gen_ai spans read back from a real Sentry project", - "version": "0.0.0", - "private": true, - "type": "module", - "scripts": { - "build": "vite build", - "start": "NODE_OPTIONS='--import=@sentry/node/import' PORT=3030 node dist/server.mjs", - "test": "OPENROUTER_API_KEY=$E2E_OPENROUTER_API_KEY playwright test", - "clean": "npx rimraf node_modules dist pnpm-lock.yaml", - "test:build": "pnpm install && pnpm build", - "test:build-latest": "pnpm install && pnpm add @flue/runtime@latest @flue/vite@latest @flue/cli@latest && pnpm build", - "test:assert": "pnpm test" - }, - "dependencies": { - "@flue/runtime": "2.0.5", - "@sentry/node": "file:../../packed/sentry-node-packed.tgz", - "dataloader": "^2.2.3", - "hono": "^4.7.0", - "valibot": "^1.5.0" - }, - "devDependencies": { - "@flue/cli": "2.0.5", - "@flue/vite": "2.0.5", - "@playwright/test": "1.64.1", - "@sentry-internal/test-utils": "file:../../packed/sentry-internal-test-utils-packed.tgz", - "@sentry/conventions": "0.27.0", - "@types/node": "24.x", - "sentry": "~0.44.1", - "typescript": "~5.9.0", - "vite": "^8.0.14" - }, - "engines": { - "node": "24.x" - }, - "volta": { - "extends": "../../package.json" - }, - "sentryTest": { - "optional": true, - "optionalVariants": [ - { - "build-command": "pnpm test:build-latest", - "label": "node-flue-send-to-sentry (latest)" - } - ] - } -} diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/playwright.config.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/playwright.config.ts deleted file mode 100644 index 161e4b1c5d72..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/playwright.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { defineConfig } from '@playwright/test'; - -const port = 3030; - -export default defineConfig({ - testDir: './tests', - // A model turn, then Sentry polls of up to 180s each. Spans become queryable within the first one. - timeout: 400_000, - fullyParallel: true, - forbidOnly: !!process.env.CI, - retries: 0, - // Every test spends most of its time polling Sentry, so run them all at once. - workers: '100%', - reporter: process.env.CI ? [['list'], ['junit', { outputFile: 'results.junit.xml' }]] : 'list', - use: { - baseURL: `http://localhost:${port}`, - }, - webServer: { - command: 'pnpm start', - port, - stdout: 'pipe', - stderr: 'pipe', - }, -}); diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/pnpm-workspace.yaml b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/pnpm-workspace.yaml deleted file mode 100644 index 0e523a16e6f0..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -allowBuilds: - '@google/genai': false - core-js-pure: false - esbuild: true - protobufjs: false -minimumReleaseAge: 0 diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/sentry-init.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/sentry-init.ts deleted file mode 100644 index 30f0b4c8cd49..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/sentry-init.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { instrument } from '@flue/runtime'; -import * as Sentry from '@sentry/node'; - -// No tunnel: the spans go to the Sentry project behind `E2E_TEST_DSN`, where the tests read them back. -Sentry.init({ - environment: 'qa', // dynamic sampling bias to keep transactions - dsn: process.env.E2E_TEST_DSN, - tracesSampleRate: 1.0, -}); - -instrument(Sentry.createFlueInstrumentation()); diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/src/agents/hello.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/src/agents/hello.ts deleted file mode 100644 index 9d218454a86e..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/src/agents/hello.ts +++ /dev/null @@ -1,50 +0,0 @@ -'use agent'; -import { useModel, useTool } from '@flue/runtime'; -import * as Sentry from '@sentry/node'; -import * as v from 'valibot'; -import DataLoader from 'dataloader'; - -export function Hello() { - useModel('openrouter/anthropic/claude-haiku-4.5'); - - useTool({ - name: 'get_weather', - description: 'Get the current weather for a city.', - input: v.object({ city: v.string() }), - // Wrapped in a manual span: Flue runs the tool while the SDK's `execute_tool` span is active, - // so this should nest directly under it rather than landing beside it. - run: ({ data }) => - Sentry.startSpan( - { name: 'resolve-weather', attributes: { 'weather.source': 'static-table', 'weather.city': data.city } }, - () => { - return `It is 21 degrees and sunny in ${data.city}.`; - }, - ), - }); - - // Called from inside a tool on purpose: the dataloader span then lands under `execute_tool` in - // the agent's trace, which is what "captured alongside the AI spans" has to mean. - useTool({ - name: 'count_items', - description: 'Count items by loading them. Call this when the user asks to count items.', - input: v.object({}), - // Constructed per execution, like node-eve does: a module-level loader caches its keys, so a - // second call would skip the batch function and emit no span. - run: async () => { - const loader = new DataLoader(async keys => keys.map(key => key * 2)); - const doubled = await Promise.all([loader.load(1), loader.load(2), loader.load(3)]); - return `Loaded ${doubled.length} items: ${doubled.join(', ')}.`; - }, - }); - - useTool({ - name: 'fail_now', - description: 'Always throws an error. Call this when the user asks to trigger a failure.', - input: v.object({}), - run: () => { - throw new Error('Intentional flue tool failure'); - }, - }); - - return 'You are a helpful assistant. Use get_weather when asked about weather, count_items when asked to count items, and fail_now when asked to fail.'; -} diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/src/app.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/src/app.ts deleted file mode 100644 index b54a3357e4ca..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/src/app.ts +++ /dev/null @@ -1,10 +0,0 @@ -import '../sentry-init.ts'; -import { createAgentRouter } from '@flue/runtime/routing'; -import { Hono } from 'hono'; -import { Hello } from './agents/hello.ts'; - -const app = new Hono(); - -app.route('/agents/hello', createAgentRouter(Hello)); - -export default app; diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/dataloader.test.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/dataloader.test.ts deleted file mode 100644 index ba6a62fc8f7d..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/dataloader.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { expect, test } from '@playwright/test'; -import { SEARCH_ORIGIN } from '@sentry/conventions/attributes/search'; -import { CACHE_GET } from '@sentry/conventions/op'; -import { EVENT_POLLING_OPTIONS, fetchSpanAttributes } from '@sentry-internal/test-utils/cli'; -import { newInstanceId, runAgentTurn, waitForConversationTrace } from './utils'; - -// Orchestrion only hooks `dataloader` with the loader preloaded (`--import` in the start script). -test('sends orchestrion-instrumented dataloader spans in the same trace as the AI spans', async ({ baseURL }) => { - const conversationId = await runAgentTurn( - baseURL!, - newInstanceId('dataloader'), - 'Please call count_items to count the items.', - ); - - const { traceId, spans } = await waitForConversationTrace( - conversationId, - spans => - spans.some(span => span.description === 'execute_tool count_items') && spans.some(span => span.op === CACHE_GET), - ); - - const dataloaderSpan = spans.find(span => span.op === CACHE_GET); - await expect - .poll(() => fetchSpanAttributes(traceId, dataloaderSpan!.event_id!), EVENT_POLLING_OPTIONS) - .toMatchObject({ [SEARCH_ORIGIN]: 'auto.db.dataloader' }); -}); diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/errors.test.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/errors.test.ts deleted file mode 100644 index aa4666c1a3bf..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/errors.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { expect, test } from '@playwright/test'; -import { SEARCH_GEN_AI__TOOL__NAME, SEARCH_SPAN__STATUS } from '@sentry/conventions/attributes/search'; -import { - EVENT_POLLING_OPTIONS, - fetchEvent, - fetchSpanAttributes, - findErrorInTrace, -} from '@sentry-internal/test-utils/cli'; -import type { TraceItem } from '@sentry-internal/test-utils/cli'; -import { newInstanceId, runAgentTurn, waitForConversationTrace } from './utils'; - -test('sends an error thrown inside a Flue tool and marks its span errored', async ({ baseURL }) => { - const conversationId = await runAgentTurn( - baseURL!, - newInstanceId('failure'), - 'Please call fail_now to trigger a failure.', - ); - - const { traceId, spans } = await waitForConversationTrace(conversationId, spans => - spans.some(span => span.description === 'execute_tool fail_now'), - ); - - let error: TraceItem | undefined; - await expect.poll(() => (error = findErrorInTrace(traceId)), EVENT_POLLING_OPTIONS).toBeDefined(); - await expect - .poll( - () => fetchEvent(error!.event_id!)?.entries.find(entry => entry.type === 'exception')?.data.values?.[0], - EVENT_POLLING_OPTIONS, - ) - .toMatchObject({ value: 'Intentional flue tool failure', mechanism: { type: 'auto.ai.flue' } }); - - const executeTool = spans.find(span => span.description === 'execute_tool fail_now'); - await expect - .poll(() => fetchSpanAttributes(traceId, executeTool!.event_id!), EVENT_POLLING_OPTIONS) - .toMatchObject({ [SEARCH_GEN_AI__TOOL__NAME]: 'fail_now', [SEARCH_SPAN__STATUS]: 'error' }); -}); diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/flue.test.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/flue.test.ts deleted file mode 100644 index 6610ad009546..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/flue.test.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { expect, test } from '@playwright/test'; -import { - SEARCH_GEN_AI__AGENT__NAME, - SEARCH_GEN_AI__CONVERSATION__ID, - SEARCH_GEN_AI__COST__TOTAL_TOKENS, - SEARCH_GEN_AI__INPUT__MESSAGES, - SEARCH_GEN_AI__OPERATION__NAME, - SEARCH_GEN_AI__PROVIDER__NAME, - SEARCH_GEN_AI__TOOL__CALL__ARGUMENTS, - SEARCH_GEN_AI__TOOL__CALL__RESULT, - SEARCH_GEN_AI__TOOL__NAME, - SEARCH_GEN_AI__USAGE__INPUT_TOKENS, - SEARCH_GEN_AI__USAGE__OUTPUT_TOKENS, - SEARCH_ORIGIN, - SEARCH_SPAN__STATUS, -} from '@sentry/conventions/attributes/search'; -import { - GEN_AI_CHAT, - GEN_AI_EXECUTE_TOOL, - GEN_AI_INVOKE_AGENT, - HTTP_CLIENT, - HTTP_SERVER, -} from '@sentry/conventions/op'; -import type { TraceItem } from '@sentry-internal/test-utils/cli'; -import { EVENT_POLLING_OPTIONS, fetchSpanAttributes } from '@sentry-internal/test-utils/cli'; -import { newInstanceId, runAgentTurn, waitForConversationTrace } from './utils'; - -test('sends the request / invoke_agent / chat / execute_tool hierarchy of a Flue turn', async ({ baseURL }) => { - const conversationId = await runAgentTurn(baseURL!, newInstanceId('weather'), 'What is the weather in Paris?'); - - // Spans land at different times, so wait for the relationships checked below, not just the ops. - const isProviderCall = (span: TraceItem, spans: TraceItem[]) => - span.op === HTTP_CLIENT && spans.some(chat => chat.op === GEN_AI_CHAT && chat.event_id === span.parent_span_id); - const { traceId, spans } = await waitForConversationTrace( - conversationId, - spans => - [HTTP_SERVER, GEN_AI_INVOKE_AGENT, GEN_AI_EXECUTE_TOOL].every(op => spans.some(span => span.op === op)) && - spans.some(span => isProviderCall(span, spans)), - ); - - const request = spans.find(span => span.op === HTTP_SERVER); - const agents = spans.filter(span => span.op === GEN_AI_INVOKE_AGENT); - const invokeAgent = agents[0]; - const chats = spans.filter(span => span.op === GEN_AI_CHAT); - const executeTool = spans.find(span => span.description === 'execute_tool get_weather'); - - // More than one means other conversations leaked into this trace (withastro/flue#813). - expect(agents).toHaveLength(1); - expect(invokeAgent?.parent_span_id).toBe(request?.event_id); - // A chat span anywhere else would be a provider SDK reporting the same call a second time. - expect(chats.map(chat => chat.parent_span_id)).toEqual(chats.map(() => invokeAgent?.event_id)); - expect(executeTool?.parent_span_id).toBe(invokeAgent?.event_id); - - await expect - .poll(() => fetchSpanAttributes(traceId, invokeAgent!.event_id!), EVENT_POLLING_OPTIONS) - .toMatchObject({ - [SEARCH_ORIGIN]: 'auto.ai.flue', - [SEARCH_GEN_AI__OPERATION__NAME]: 'invoke_agent', - [SEARCH_GEN_AI__AGENT__NAME]: 'Hello', - [SEARCH_GEN_AI__CONVERSATION__ID]: conversationId, - }); - - let chatAttributes: Record | undefined; - await expect - .poll(() => (chatAttributes = fetchSpanAttributes(traceId, chats[0]!.event_id!)), EVENT_POLLING_OPTIONS) - .toMatchObject({ - [SEARCH_ORIGIN]: 'auto.ai.flue', - [SEARCH_SPAN__STATUS]: 'ok', - [SEARCH_GEN_AI__PROVIDER__NAME]: 'openrouter', - [SEARCH_GEN_AI__INPUT__MESSAGES]: expect.stringContaining('What is the weather in Paris?'), - }); - // The trace-items API returns integer attributes as strings. - expect(Number(chatAttributes![SEARCH_GEN_AI__USAGE__INPUT_TOKENS])).toBeGreaterThan(0); - expect(Number(chatAttributes![SEARCH_GEN_AI__USAGE__OUTPUT_TOKENS])).toBeGreaterThan(0); - // Flue computes cost itself; no provider SDK reports it. - expect(chatAttributes![SEARCH_GEN_AI__COST__TOTAL_TOKENS]).toBeGreaterThan(0); - - await expect - .poll(() => fetchSpanAttributes(traceId, executeTool!.event_id!), EVENT_POLLING_OPTIONS) - .toMatchObject({ - [SEARCH_ORIGIN]: 'auto.ai.flue', - [SEARCH_GEN_AI__TOOL__NAME]: 'get_weather', - // The model picks the argument (`Paris`, `Paris, France`, ...). - [SEARCH_GEN_AI__TOOL__CALL__ARGUMENTS]: expect.stringContaining('Paris'), - [SEARCH_GEN_AI__TOOL__CALL__RESULT]: expect.stringMatching(/^It is 21 degrees and sunny in Paris/), - }); -}); - -test('nests a manual span raised inside a tool under that tool span', async ({ baseURL }) => { - const conversationId = await runAgentTurn(baseURL!, newInstanceId('manual-span'), 'What is the weather in Berlin?'); - - const { traceId, spans } = await waitForConversationTrace(conversationId, spans => - spans.some( - span => span.description === 'resolve-weather' && spans.some(parent => parent.event_id === span.parent_span_id), - ), - ); - - const manualSpan = spans.find(span => span.description === 'resolve-weather'); - const parent = spans.find(span => span.event_id === manualSpan?.parent_span_id); - expect(parent?.description).toBe('execute_tool get_weather'); - - await expect - .poll(() => fetchSpanAttributes(traceId, manualSpan!.event_id!), EVENT_POLLING_OPTIONS) - .toMatchObject({ 'weather.source': 'static-table', 'weather.city': expect.stringContaining('Berlin') }); -}); diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/utils.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/utils.ts deleted file mode 100644 index 7b3f2814266f..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tests/utils.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { expect } from '@playwright/test'; -import { SEARCH_GEN_AI__CONVERSATION__ID } from '@sentry/conventions/attributes/search'; -import type { TraceItem } from '@sentry-internal/test-utils/cli'; -import { - EVENT_POLLING_OPTIONS, - fetchTrace, - findTraceIdOfSpan, - flattenTrace, - traceTarget, -} from '@sentry-internal/test-utils/cli'; - -/** A fresh instance id, so an earlier settlement cannot end the wait early. */ -export function newInstanceId(prefix: string): string { - return `${prefix}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`; -} - -/** Send one message and wait for the turn to settle. Returns the conversation id. */ -export async function runAgentTurn(baseURL: string, instanceId: string, message: string): Promise { - const url = `${baseURL}/agents/hello/${instanceId}`; - - const res = await fetch(url, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ kind: 'user', body: message }), - }); - const body = await res.text(); - expect(res.status, body).toBe(202); - - const deadline = Date.now() + 90_000; - while (Date.now() < deadline) { - const conversation = (await (await fetch(url)).json()) as { conversationId: string; settlements?: unknown[] }; - if (conversation.settlements?.length) { - return conversation.conversationId; - } - await new Promise(resolve => setTimeout(resolve, 1_000)); - } - - throw new Error(`Flue turn for "${instanceId}" did not settle within 90s`); -} - -/** The router answers `202` before the turn runs, so the trace is found by conversation id. */ -export async function waitForConversationTrace( - conversationId: string, - isComplete: (spans: TraceItem[]) => boolean, -): Promise<{ traceId: string; spans: TraceItem[] }> { - let traceId: string | undefined; - await expect - .poll( - () => (traceId = findTraceIdOfSpan(`${SEARCH_GEN_AI__CONVERSATION__ID}:${conversationId}`)), - EVENT_POLLING_OPTIONS, - ) - .toBeDefined(); - - console.log(`Polling for the agent spans: sentry trace view ${traceTarget(traceId!)}`); - - let spans: TraceItem[] = []; - await expect.poll(() => isComplete((spans = flattenTrace(fetchTrace(traceId!)))), EVENT_POLLING_OPTIONS).toBe(true); - - return { traceId: traceId!, spans }; -} diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tsconfig.json b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tsconfig.json deleted file mode 100644 index 2cb98b13c9f8..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "module": "esnext", - "moduleResolution": "bundler", - "types": ["node"], - "strict": true, - "allowImportingTsExtensions": true, - "esModuleInterop": true, - "skipLibCheck": true, - "noEmit": true - }, - "include": ["src/**/*.ts", "sentry-init.ts", "flue.config.ts", "vite.config.ts"] -} diff --git a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/vite.config.ts b/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/vite.config.ts deleted file mode 100644 index a77574b64290..000000000000 --- a/dev-packages/e2e-tests/test-applications/node-flue-send-to-sentry/vite.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { flue } from '@flue/vite'; -import { defineConfig } from 'vite'; - -// As `flue init` scaffolds it. Flue keeps dependencies as bare imports, so orchestrion can still hook them. -export default defineConfig({ - plugins: [flue()], -});