Skip to content

Commit 5a1b5f3

Browse files
authored
fix: Pending events are not showing in some cases (#1098)
* Notify subscirbers on pending event changes * remove .only from test case
1 parent 01b2226 commit 5a1b5f3

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/views/workflow-history/helpers/__tests__/workflow-history-grouper.test.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,31 @@ describe(WorkflowHistoryGrouper.name, () => {
471471
expect(Object.keys(groups).length).toBe(0);
472472
});
473473

474+
it('should notify subscribers after pending events are processed', async () => {
475+
const { grouper, waitForProcessing } = setup();
476+
const scheduledEvent = createScheduleActivityEvent('7');
477+
grouper.updateEvents([scheduledEvent]);
478+
await waitForProcessing();
479+
// subscribe to state changes
480+
const mockOnChange = jest.fn();
481+
grouper.onChange(mockOnChange);
482+
// add pending event on history after scheduled event is processed and onChange is subscribed
483+
await grouper.updatePendingEvents({
484+
pendingStartActivities: [pendingActivityTaskStartEvent],
485+
pendingStartDecision: null,
486+
});
487+
488+
await waitForProcessing();
489+
expect(mockOnChange).toHaveBeenCalled();
490+
491+
const callArgs = mockOnChange.mock.calls[0][0];
492+
expect(callArgs.groups['7']).toBeDefined();
493+
expect(callArgs.groups['7'].events).toEqual([
494+
scheduledEvent,
495+
pendingActivityTaskStartEvent,
496+
]);
497+
});
498+
474499
it('should handle pending decision buffer clearing when decision changes', async () => {
475500
const { grouper, waitForProcessing } = setup();
476501

src/views/workflow-history/helpers/workflow-history-grouper.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,10 @@ export default class WorkflowHistoryGrouper {
413413
);
414414

415415
this.updatePendingDecision(currentPendingDecision, newPendingDecision);
416+
417+
// Report progress to all subscribers
418+
const state = this.getState();
419+
this.subscribers.forEach((callback) => callback(state));
416420
}
417421

418422
/**

0 commit comments

Comments
 (0)