Skip to content

Commit f160c4e

Browse files
committed
unit tests for middleware
1 parent 697f13b commit f160c4e

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

src/middleware_test.ts

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import {
2+
RequestContext,
3+
ResponseContext,
4+
ConfigurationOptions,
5+
Middleware,
6+
HttpMethod,
7+
} from './gen/index.js';
8+
import { deepStrictEqual, ok, rejects, strictEqual } from 'node:assert';
9+
import { setHeaderMiddleware, setHeaderOptions } from './middleware.js';
10+
import { PromiseMiddleware } from './gen/middleware.js';
11+
12+
describe('Middleware', async () => {
13+
describe('setHeaderMiddleware', async () => {
14+
it('should set a header when it is blank', async () => {
15+
const reqContext = new RequestContext('http://nowhere.com', HttpMethod.GET);
16+
deepStrictEqual(reqContext.getHeaders(), {});
17+
const headerMiddleware = setHeaderMiddleware('test-key', 'test-value');
18+
const postMiddlewareRequest = await headerMiddleware[0].pre(reqContext);
19+
deepStrictEqual(postMiddlewareRequest.getHeaders(), { 'test-key': 'test-value' });
20+
});
21+
22+
it('should replace a header if it is already specified', async () => {
23+
const reqContext = new RequestContext('http://nowhere.com', HttpMethod.GET);
24+
reqContext.setHeaderParam('test-key', 'wrong-value');
25+
deepStrictEqual(reqContext.getHeaders(), { 'test-key': 'wrong-value' });
26+
const headerMiddleware = setHeaderMiddleware('test-key', 'test-value');
27+
const postMiddlewareRequest = await headerMiddleware[0].pre(reqContext);
28+
deepStrictEqual(postMiddlewareRequest.getHeaders(), { 'test-key': 'test-value' });
29+
});
30+
});
31+
32+
describe('setHeaderOptions', async () => {
33+
it('should add middleware to set header with no input options arg', async () => {
34+
const reqContext = new RequestContext('http://nowhere.com', HttpMethod.GET);
35+
deepStrictEqual(reqContext.getHeaders(), {});
36+
const testConfigurationOptions: ConfigurationOptions<PromiseMiddleware> = {};
37+
const headerConfigurationOptions = setHeaderOptions(
38+
'test-key',
39+
'test-value',
40+
testConfigurationOptions,
41+
);
42+
if (
43+
headerConfigurationOptions.middleware === undefined ||
44+
headerConfigurationOptions.middleware.length < 1
45+
) {
46+
throw new Error('missing middleware in ConfigurationOptions');
47+
}
48+
const postMiddlewareRequest = await headerConfigurationOptions.middleware[0].pre(reqContext);
49+
deepStrictEqual(postMiddlewareRequest.getHeaders(), { 'test-key': 'test-value' });
50+
});
51+
});
52+
});

0 commit comments

Comments
 (0)