From dcc9830360d825afe6dcf6419a910df62fb1089c Mon Sep 17 00:00:00 2001 From: James Burns Date: Fri, 17 Jul 2026 10:11:54 +1000 Subject: [PATCH] Add advice override for 'MISSING_TRIGGER_FUNCTION' --- .../case-core/src/core/executeExample/triggers.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/case-core/src/core/executeExample/triggers.ts b/packages/case-core/src/core/executeExample/triggers.ts index 881ac6473..be1fa7e37 100644 --- a/packages/case-core/src/core/executeExample/triggers.ts +++ b/packages/case-core/src/core/executeExample/triggers.ts @@ -16,6 +16,11 @@ import type { InvokingScaffold, Trigger } from './types'; import { Assertable } from '../../entities/types'; import { CaseFailedAssertionError } from '../../entities'; +const advice = (context: MatchContext) => + context['_case:currentRun:context:adviceOverrides']?.[ + 'MISSING_TRIGGER_FUNCTION' + ] ?? `Please check that you have configured the appropriate trigger function`; + const invokeTrigger = ( trigger: Trigger, testResponse: (data: R, config: Assertable['config']) => unknown, @@ -213,7 +218,7 @@ export const findAndCallTrigger = ( `No trigger for request '${names.requestName}' provided`, ); throw new CaseConfigurationError( - `No trigger provided for request:\n ${names.requestName}`, + `No trigger provided for request:\n ${names.requestName}\n\n${advice(context)}`, context, 'MISSING_TRIGGER_FUNCTION', ); @@ -251,22 +256,20 @@ export const findAndCallTrigger = ( names.responseName }\n However, tests for that response name do exist in the following configurations:\n${endsWith .map((s) => ` ${s.split('::')[0]}`) - .join( - '\n', - )}\n\nPlease check that you have configured the appropriate trigger function\n`, + .join('\n')}\n\n${advice(context)}\n`, context, 'MISSING_TRIGGER_FUNCTION', ); } throw new CaseConfigurationError( - `Missing a trigger for:\n ${names.requestName}\n this should be paired with a test for:\n ${names.responseName}`, + `Missing a trigger for:\n ${names.requestName}\n this should be paired with a test for:\n ${names.responseName}\n\n${advice(context)}`, context, 'MISSING_TRIGGER_FUNCTION', ); } throw new CaseConfigurationError( - `No trigger or trigger map provided for:\n ${names.requestName}\n You must set a trigger or a trigger map`, + `No trigger or trigger map provided for:\n ${names.requestName}\n You must set a trigger or a trigger map\n\n${advice(context)}`, context, 'MISSING_TRIGGER_FUNCTION', );