|
1 | 1 | import test from "ava";
|
2 |
| -import type { OutgoingHttpHeaders } from "node:http"; |
| 2 | +import http from "node:http"; |
3 | 3 | import micro from "micro";
|
4 | 4 | import listen from "test-listen";
|
5 | 5 | import got from "got";
|
6 |
| -import { verifySecret } from "../../src/index"; |
| 6 | +import type { Headers } from "got"; |
| 7 | +import { verifySecret } from "../../src/index.js"; |
7 | 8 |
|
8 | 9 | interface TestVerifySecretOptions {
|
9 | 10 | readonly secret: string;
|
10 |
| - readonly requestBodyJson: object; |
| 11 | + readonly requestBodyJson: unknown; |
11 | 12 | readonly xHubSignatureHeader?: string;
|
12 | 13 | }
|
13 | 14 |
|
14 | 15 | const testVerifySecretMacro = test.macro(async (t, options: TestVerifySecretOptions, isValid: boolean) => {
|
15 | 16 | const { secret, requestBodyJson, xHubSignatureHeader } = options;
|
16 | 17 |
|
17 |
| - const server = micro(async (request) => { |
18 |
| - const valid = await verifySecret(request, secret); |
| 18 | + const server = new http.Server( |
| 19 | + micro.serve(async (request) => { |
| 20 | + const valid = await verifySecret(request, secret); |
19 | 21 |
|
20 |
| - t.is(valid, isValid); |
| 22 | + t.is(valid, isValid); |
21 | 23 |
|
22 |
| - return ""; |
23 |
| - }); |
| 24 | + return ""; |
| 25 | + }), |
| 26 | + ); |
24 | 27 |
|
25 | 28 | try {
|
26 | 29 | const url = await listen(server);
|
27 |
| - let headers: OutgoingHttpHeaders | undefined; |
| 30 | + let headers: Headers | undefined; |
28 | 31 |
|
29 | 32 | if (xHubSignatureHeader !== undefined) {
|
30 | 33 | headers = { "X-Hub-Signature": xHubSignatureHeader };
|
31 | 34 | }
|
32 | 35 |
|
33 | 36 | await got.post(url, {
|
34 | 37 | headers,
|
35 |
| - json: true, |
36 |
| - body: requestBodyJson, |
| 38 | + json: requestBodyJson, |
37 | 39 | });
|
38 | 40 | } finally {
|
39 | 41 | server.close();
|
@@ -70,22 +72,23 @@ test(
|
70 | 72 | );
|
71 | 73 |
|
72 | 74 | test("should not hang when verify is called more than once", async (t) => {
|
73 |
| - const server = micro(async (request) => { |
74 |
| - const valid = await verifySecret(request, "my-secret"); |
75 |
| - await verifySecret(request, "my-secret"); |
| 75 | + const server = new http.Server( |
| 76 | + micro.serve(async (request) => { |
| 77 | + const valid = await verifySecret(request, "my-secret"); |
| 78 | + await verifySecret(request, "my-secret"); |
76 | 79 |
|
77 |
| - t.true(valid); |
| 80 | + t.true(valid); |
78 | 81 |
|
79 |
| - return ""; |
80 |
| - }); |
| 82 | + return ""; |
| 83 | + }), |
| 84 | + ); |
81 | 85 |
|
82 | 86 | try {
|
83 | 87 | const url = await listen(server);
|
84 | 88 |
|
85 | 89 | await got.post(url, {
|
86 | 90 | headers: { "X-Hub-Signature": "sha1=30a233839fe2ddd9233c49fd593e8f1aec68f553" },
|
87 |
| - json: true, |
88 |
| - body: { foo: "bar" }, |
| 91 | + json: { foo: "bar" }, |
89 | 92 | });
|
90 | 93 | } finally {
|
91 | 94 | server.close();
|
|
0 commit comments