Skip to content

Commit c705ccb

Browse files
committed
add tests
1 parent a086e62 commit c705ccb

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

lib/utils/ticker/ticker.spec.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ describe("IntervalTicker", () => {
142142
expect(handler.mock.calls[3][0]).toBe(true);
143143
});
144144

145-
it('should backoff when the handler fails', async() => {
145+
it('should backoff when the handler fails if backoffController is provided', async() => {
146146
const handler = vi.fn().mockRejectedValue(new Error());
147147

148148
const backoffController = {
@@ -168,6 +168,23 @@ describe("IntervalTicker", () => {
168168
expect(backoffController.backoff).toHaveBeenCalledTimes(3);
169169
});
170170

171+
it('should use the regular interval when the handler fails if backoffController is not provided', async() => {
172+
const handler = vi.fn().mockRejectedValue(new Error());
173+
174+
const intervalTicker = new IntervalTicker(30000);
175+
intervalTicker.onTick(handler);
176+
177+
intervalTicker.start();
178+
179+
await advanceTimersByTime(30000);
180+
expect(handler).toHaveBeenCalledTimes(1);
181+
182+
await advanceTimersByTime(10000);
183+
expect(handler).toHaveBeenCalledTimes(1);
184+
await advanceTimersByTime(20000);
185+
expect(handler).toHaveBeenCalledTimes(2);
186+
});
187+
171188
it('should reset the backoffController after handler success', async () => {
172189
const handler = vi.fn().mockRejectedValueOnce(new Error)
173190
.mockRejectedValueOnce(new Error())
@@ -247,6 +264,10 @@ describe("IntervalTicker", () => {
247264

248265
intervalTicker.stop();
249266

267+
ret.resolve(undefined);
268+
await ret.promise;
269+
270+
await advanceTimersByTime(2000);
250271
await advanceTimersByTime(2000);
251272
expect(handler).toHaveBeenCalledTimes(1);
252273
});

0 commit comments

Comments
 (0)