]> git.r.bdr.sh - rbdr/forum/blobdiff - src/lib/utils/resolve_after.test.ts
Update / use typescript
[rbdr/forum] / src / lib / utils / resolve_after.test.ts
diff --git a/src/lib/utils/resolve_after.test.ts b/src/lib/utils/resolve_after.test.ts
new file mode 100644 (file)
index 0000000..7e0cc3c
--- /dev/null
@@ -0,0 +1,37 @@
+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 resolve after the specified number of times', () => {
+
+    expect(() => {
+
+      const { counter, promise: 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();
+  });
+});