@@ -1519,6 +1519,7 @@ test('Workflow failure if define signals/updates/queries with reserved prefixes'
15191519 } ) ;
15201520} ) ;
15211521
1522+ export const wfReadyQuery = defineQuery < boolean > ( 'wf-ready' ) ;
15221523export async function workflowWithDefaultHandlers ( ) : Promise < void > {
15231524 let unblocked = false ;
15241525 setHandler ( defineSignal ( 'unblock' ) , ( ) => {
@@ -1528,6 +1529,7 @@ export async function workflowWithDefaultHandlers(): Promise<void> {
15281529 setDefaultQueryHandler ( ( ) => { } ) ;
15291530 setDefaultSignalHandler ( ( ) => { } ) ;
15301531 setDefaultUpdateHandler ( ( ) => { } ) ;
1532+ setHandler ( wfReadyQuery , ( ) => true ) ;
15311533
15321534 await condition ( ( ) => unblocked ) ;
15331535}
@@ -1558,6 +1560,11 @@ test('Default handlers fail given reserved prefix', async (t) => {
15581560 for ( const prefix of reservedPrefixes ) {
15591561 // Reserved query
15601562 let handle = await startWorkflow ( workflowWithDefaultHandlers ) ;
1563+ await asyncRetry ( async ( ) => {
1564+ if ( ! ( await handle . query ( wfReadyQuery ) ) ) {
1565+ throw new Error ( 'Workflow not ready yet' ) ;
1566+ }
1567+ } ) ;
15611568 const queryName = `${ prefix } _query` ;
15621569 await t . throwsAsync (
15631570 handle . query ( queryName ) ,
@@ -1572,13 +1579,23 @@ test('Default handlers fail given reserved prefix', async (t) => {
15721579
15731580 // Reserved signal
15741581 handle = await startWorkflow ( workflowWithDefaultHandlers ) ;
1582+ await asyncRetry ( async ( ) => {
1583+ if ( ! ( await handle . query ( wfReadyQuery ) ) ) {
1584+ throw new Error ( 'Workflow not ready yet' ) ;
1585+ }
1586+ } ) ;
15751587 const signalName = `${ prefix } _signal` ;
15761588 await handle . signal ( signalName ) ;
15771589 await assertWftFailure ( handle , `Cannot use signal name: '${ signalName } ', with reserved prefix: '${ prefix } '` ) ;
15781590 await handle . terminate ( ) ;
15791591
15801592 // Reserved update
15811593 handle = await startWorkflow ( workflowWithDefaultHandlers ) ;
1594+ await asyncRetry ( async ( ) => {
1595+ if ( ! ( await handle . query ( wfReadyQuery ) ) ) {
1596+ throw new Error ( 'Workflow not ready yet' ) ;
1597+ }
1598+ } ) ;
15821599 const updateName = `${ prefix } _update` ;
15831600 handle . executeUpdate ( updateName ) . catch ( ( ) => {
15841601 // Expect failure. The error caught here is a WorkflowNotFound because
0 commit comments