|
| 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