11import test from 'ava' ;
2- import { SdkFlags } from '@temporalio/workflow/lib/flags' ;
2+ import { SdkFlags , type SdkFlag } from '@temporalio/workflow/lib/flags' ;
33import type { WorkflowInfo } from '@temporalio/workflow' ;
44
5+ type Conditions = SdkFlag [ 'alternativeConditions' ] ;
6+ function composeConditions ( conditions : Conditions ) : NonNullable < Conditions > [ number ] {
7+ return ( ctx ) => {
8+ for ( const cond of conditions ?? [ ] ) {
9+ if ( cond ( ctx ) ) {
10+ return true ;
11+ }
12+ }
13+ return false ;
14+ } ;
15+ }
16+
517test ( 'OpenTelemetryHandleSignalInterceptorInsertYield enabled by version' , ( t ) => {
618 const cases = [
719 { version : '1.0.0' , expected : false } ,
@@ -14,15 +26,7 @@ test('OpenTelemetryHandleSignalInterceptorInsertYield enabled by version', (t) =
1426 { version : '1.14.0' , expected : false } ,
1527 ] ;
1628 for ( const { version, expected } of cases ) {
17- const alternativeCondition = ( ctx : { info : WorkflowInfo ; sdkVersion : string | undefined } ) => {
18- for ( const cond of SdkFlags . OpenTelemetryHandleSignalInterceptorInsertYield . alternativeConditions ! ) {
19- if ( cond ( ctx ) ) {
20- return true ;
21- }
22- }
23- return false ;
24- } ;
25- const actual = alternativeCondition ( {
29+ const actual = composeConditions ( SdkFlags . OpenTelemetryHandleSignalInterceptorInsertYield . alternativeConditions ) ( {
2630 info : { } as WorkflowInfo ,
2731 sdkVersion : version ,
2832 } ) ;
@@ -33,3 +37,23 @@ test('OpenTelemetryHandleSignalInterceptorInsertYield enabled by version', (t) =
3337 ) ;
3438 }
3539} ) ;
40+
41+ test ( 'OpenTelemetryInterceptorInsertYield enabled by version' , ( t ) => {
42+ const cases = [
43+ { version : '0.1.0' , expected : true } ,
44+ { version : '1.0.0' , expected : true } ,
45+ { version : '1.9.0-rc.0' , expected : true } ,
46+ { version : '1.11.3' , expected : true } ,
47+ { version : '1.13.1' , expected : true } ,
48+ { version : '1.13.2' , expected : false } ,
49+ { version : '1.14.0' , expected : false } ,
50+ { version : '2.0.0' , expected : false } ,
51+ ] ;
52+ for ( const { version, expected } of cases ) {
53+ const actual = composeConditions ( SdkFlags . OpenTelemetryInterceptorInsertYield . alternativeConditions ) ( {
54+ info : { } as WorkflowInfo ,
55+ sdkVersion : version ,
56+ } ) ;
57+ t . is ( actual , expected , `Expected OpenTelemetryInterceptorInsertYield on ${ version } to evaluate as ${ expected } ` ) ;
58+ }
59+ } ) ;
0 commit comments