1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00
unleash.unleash/src/lib/middleware/bearer-token-middleware.test.ts
Gastón Fournier 2400ffc67e
feat: remove bearer token middleware flag (#6934)
## About the changes
Removes the bearer token middleware flag for GA
2024-04-25 14:01:06 +00:00

103 lines
3.0 KiB
TypeScript

import { bearerTokenMiddleware } from './bearer-token-middleware';
import type { IUnleashConfig } from '../types';
import { createTestConfig } from '../../test/config/test-config';
import getLogger from '../../test/fixtures/no-logger';
import type { Request, Response } from 'express';
const exampleSignalToken = 'signal_tokensecret';
describe('bearerTokenMiddleware', () => {
const req = { headers: {}, path: '' } as Request;
const res = {} as Response;
const next = jest.fn();
let config: IUnleashConfig;
beforeEach(() => {
config = createTestConfig({
getLogger,
});
});
it('should call next', () => {
const middleware = bearerTokenMiddleware(config);
middleware(req, res, next);
expect(next).toHaveBeenCalled();
});
it('should leave Unleash tokens intact', () => {
const middleware = bearerTokenMiddleware(config);
req.headers = { authorization: exampleSignalToken };
middleware(req, res, next);
expect(req.headers.authorization).toBe(exampleSignalToken);
});
it('should convert Bearer token to Unleash token', () => {
const middleware = bearerTokenMiddleware(config);
const bearerToken = `Bearer ${exampleSignalToken}`;
req.headers = { authorization: bearerToken };
middleware(req, res, next);
expect(req.headers.authorization).toBe(exampleSignalToken);
});
it('should be case insensitive in the scheme', () => {
const middleware = bearerTokenMiddleware(config);
const bearerToken = `bEaReR ${exampleSignalToken}`;
req.headers = { authorization: bearerToken };
middleware(req, res, next);
expect(req.headers.authorization).toBe(exampleSignalToken);
});
it('should always run for signal endpoint, without base path', () => {
const configWithBearerTokenMiddlewareFlagDisabled = createTestConfig({
getLogger,
});
const middleware = bearerTokenMiddleware(
configWithBearerTokenMiddlewareFlagDisabled,
);
req.path = '/api/signal-endpoint/';
const bearerToken = `Bearer ${exampleSignalToken}`;
req.headers = { authorization: bearerToken };
middleware(req, res, next);
expect(req.headers.authorization).toBe(exampleSignalToken);
});
it('should always run for signal endpoint, regardless of the flag, with base path', () => {
const configWithBearerTokenMiddlewareFlagDisabled = createTestConfig({
getLogger,
server: {
baseUriPath: '/some-test-instance',
},
});
const middleware = bearerTokenMiddleware(
configWithBearerTokenMiddlewareFlagDisabled,
);
req.path = '/some-test-instance/api/signal-endpoint/';
const bearerToken = `Bearer ${exampleSignalToken}`;
req.headers = { authorization: bearerToken };
middleware(req, res, next);
expect(req.headers.authorization).toBe(exampleSignalToken);
});
});