@@ -1519,6 +1519,7 @@ test('Workflow failure if define signals/updates/queries with reserved prefixes'
1519
1519
} ) ;
1520
1520
} ) ;
1521
1521
1522
+ export const wfReadyQuery = defineQuery < boolean > ( 'wf-ready' ) ;
1522
1523
export async function workflowWithDefaultHandlers ( ) : Promise < void > {
1523
1524
let unblocked = false ;
1524
1525
setHandler ( defineSignal ( 'unblock' ) , ( ) => {
@@ -1528,6 +1529,7 @@ export async function workflowWithDefaultHandlers(): Promise<void> {
1528
1529
setDefaultQueryHandler ( ( ) => { } ) ;
1529
1530
setDefaultSignalHandler ( ( ) => { } ) ;
1530
1531
setDefaultUpdateHandler ( ( ) => { } ) ;
1532
+ setHandler ( wfReadyQuery , ( ) => true ) ;
1531
1533
1532
1534
await condition ( ( ) => unblocked ) ;
1533
1535
}
@@ -1558,6 +1560,11 @@ test('Default handlers fail given reserved prefix', async (t) => {
1558
1560
for ( const prefix of reservedPrefixes ) {
1559
1561
// Reserved query
1560
1562
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
+ } ) ;
1561
1568
const queryName = `${ prefix } _query` ;
1562
1569
await t . throwsAsync (
1563
1570
handle . query ( queryName ) ,
@@ -1572,13 +1579,23 @@ test('Default handlers fail given reserved prefix', async (t) => {
1572
1579
1573
1580
// Reserved signal
1574
1581
handle = await startWorkflow ( workflowWithDefaultHandlers ) ;
1582
+ await asyncRetry ( async ( ) => {
1583
+ if ( ! ( await handle . query ( wfReadyQuery ) ) ) {
1584
+ throw new Error ( 'Workflow not ready yet' ) ;
1585
+ }
1586
+ } ) ;
1575
1587
const signalName = `${ prefix } _signal` ;
1576
1588
await handle . signal ( signalName ) ;
1577
1589
await assertWftFailure ( handle , `Cannot use signal name: '${ signalName } ', with reserved prefix: '${ prefix } '` ) ;
1578
1590
await handle . terminate ( ) ;
1579
1591
1580
1592
// Reserved update
1581
1593
handle = await startWorkflow ( workflowWithDefaultHandlers ) ;
1594
+ await asyncRetry ( async ( ) => {
1595
+ if ( ! ( await handle . query ( wfReadyQuery ) ) ) {
1596
+ throw new Error ( 'Workflow not ready yet' ) ;
1597
+ }
1598
+ } ) ;
1582
1599
const updateName = `${ prefix } _update` ;
1583
1600
handle . executeUpdate ( updateName ) . catch ( ( ) => {
1584
1601
// Expect failure. The error caught here is a WorkflowNotFound because
0 commit comments