feat: Add event-based automation triggers (#2537)

This commit is contained in:
Dermot Duffy
2026-06-30 17:45:13 -07:00
committed by dermotduffy
parent b701366762
commit a31816c168
109 changed files with 4607 additions and 1623 deletions
@@ -86,6 +86,24 @@ describe('KeyedSubscriptionManager', () => {
expect(manager.getRequestsForKey('a')).toEqual([reqA2]);
});
it('should roll back the request when the underlying subscribeFn rejects', async () => {
const manager = create();
const subscribeFn = vi.fn().mockRejectedValue(new Error('ws-fail'));
const req = { key: 'a', callback: vi.fn() };
await expect(manager.subscribe(req, subscribeFn)).rejects.toThrow('ws-fail');
// The failed subscriber must not be left dispatching against a
// never-established connection.
expect(manager.getRequestsForKey('a')).toEqual([]);
// A subsequent successful subscribe should re-attempt the underlying call.
const successFn = vi.fn().mockResolvedValue(vi.fn());
await manager.subscribe(req, successFn);
expect(successFn).toBeCalledTimes(1);
expect(manager.getRequestsForKey('a')).toEqual([req]);
});
it('should treat unsubscribe of an unknown request as a no-op', async () => {
const manager = create();
const unsub = vi.fn();