diff --git a/src/lib/programs/__tests__/error-tracking.test.ts b/src/lib/programs/__tests__/error-tracking.test.ts index bf49fb9c5..64ee0f26c 100644 --- a/src/lib/programs/__tests__/error-tracking.test.ts +++ b/src/lib/programs/__tests__/error-tracking.test.ts @@ -162,6 +162,23 @@ describe('error-tracking project picker report', () => { }); describe('error-tracking ciPreRun', () => { + test('stops when no framework is detected', async () => { + vi.mocked(detectFramework).mockResolvedValue(undefined); + const session = { + installDir: '/tmp/error-tracking-ci', + frameworkContext: {}, + } as unknown as WizardSession; + + await errorTrackingConfig.ciPreRun?.(session); + + expect(wizardAbort).toHaveBeenCalledWith( + expect.objectContaining({ code: ErrorCodes.DetectNoFramework }), + ); + expect(session.integration).toBeUndefined(); + expect(session.frameworkConfig).toBeUndefined(); + expect(session.skillId).toBeUndefined(); + }); + test('stops KMP before it sets the framework', async () => { vi.mocked(detectFramework).mockResolvedValue(Integration.kmp); const session = { diff --git a/src/lib/programs/error-tracking/index.ts b/src/lib/programs/error-tracking/index.ts index b28ae779d..9aba3a5b8 100644 --- a/src/lib/programs/error-tracking/index.ts +++ b/src/lib/programs/error-tracking/index.ts @@ -17,6 +17,7 @@ import { preinstallPostHogCliOnce } from '@lib/programs/shared/posthog-cli-prein import { analytics } from '@utils/analytics'; import { wizardAbort } from '@utils/wizard-abort'; import { ErrorCodes } from '@shared/errors'; +import { abortNoFrameworkDetected } from '@lib/programs/shared/abort-no-framework'; const ERROR_TRACKING_REPORT_FILE = 'posthog-error-tracking-report.md'; const ERROR_TRACKING_DOCS_URL = 'https://posthog.com/docs/error-tracking'; @@ -184,10 +185,7 @@ export const errorTrackingConfig: ProgramConfig = { const integration = await detectFramework(session.installDir); if (!integration) { - await wizardAbort({ - code: ErrorCodes.DetectNoFramework, - message: 'Could not auto-detect your framework for this project.', - }); + await abortNoFrameworkDetected(); return; } if (ERROR_TRACKING_UNSUPPORTED.has(integration)) {