deno.land / x / froebel@v0.23.2 / promisify.test.ts

promisify.test.ts
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import promisify from "./promisify.ts";import type { λ } from "./types.ts";import { assert, assertEquals, assertRejects } from "testing/asserts.ts";
Deno.test("promisify", async () => { { const callbackAPI = (cb: λ<[number]>) => { setTimeout(() => cb(1), 100); };
// @ts-expect-error const _promiseAPI: () => Promise<string> = promisify(callbackAPI); const promiseAPI: () => Promise<number> = promisify(callbackAPI); assertEquals(await promiseAPI(), 1);
assertEquals(await promisify(callbackAPI, null)(), undefined); }
{ const callbackAPI = (_cb: λ) => { throw Error("foo"); };
await assertRejects(promisify(callbackAPI), Error, "foo"); }
{ const callbackAPI = async (_cb: λ) => { await new Promise((res) => setTimeout(res, 10)); throw Error("bar"); }; await assertRejects(promisify(callbackAPI), Error, "bar"); }
{ const callbackAPI = (cb: λ<[err?: Error, res?: string]>) => { cb(Error("baz")); }; await assertRejects(promisify(callbackAPI, 1, 0)); assert((await promisify(callbackAPI)()) instanceof Error); }
await assertRejects( promisify( async (cb: λ) => { await new Promise((res) => setTimeout(res, 10)); cb(Error("foo")); throw Error("bar"); }, null, 0, ), Error, "foo", );
assertEquals( await promisify( async (cb: λ) => { await new Promise((res) => setTimeout(res, 10)); cb(null, 123); throw Error("foo"); }, 1, 0, )(), 123, );
{ const callbackAdd = (a: number, b: number, cb: λ<[number]>) => setTimeout(() => cb(a + b), 200);
assertEquals(await promisify(callbackAdd).callbackLast(1, 2), 3); // @ts-expect-error await promisify(callbackAdd).callbackLast(1, "a"); }
{ const callbackAdd = (cb: λ<[number]>, a: number, b: number) => setTimeout(() => cb(a + b), 200);
assertEquals(await promisify(callbackAdd).callbackFirst(1, 2), 3); // @ts-expect-error await promisify(callbackAdd).callbackFirst(1, "a"); }});
froebel

Version Info

Tagged at
a year ago