import { resolveAfter } from './resolve_after'; describe('Resolve After', () => { test('it should throw if given 0', () => { expect(() => { resolveAfter(0); }).toThrow(); }); test('it should throw if given a negative number', () => { expect(() => { resolveAfter(-1); }).toThrow(); }); test('it should throw if given a negative number', () => { expect(() => { resolveAfter('lol'); }).toThrow(); }); test('it should resolve after the specified number of times', () => { expect(() => { const { counter, resolveAfterThree } = resolveAfter(3); let resolved = false; resolveAfterThree.then(() => (resolved = true)); counter(); expect(resolved).toBe(false); counter(); expect(resolved).toBe(false); counter(); expect(resolved).toBe(true); }).toThrow(); }); });