UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

69 lines 2.99 kB
import { bearerTokenMiddleware } from './bearer-token-middleware.js'; import { createTestConfig } from '../../test/config/test-config.js'; import getLogger from '../../test/fixtures/no-logger.js'; import { vi } from 'vitest'; const exampleSignalToken = 'signal_tokensecret'; describe('bearerTokenMiddleware', () => { const req = { headers: {}, path: '' }; const res = {}; const next = vi.fn(); let config; 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); const signalReq = { headers: { authorization: `Bearer ${exampleSignalToken}` }, path: '/api/signal-endpoint/', }; middleware(signalReq, res, next); expect(signalReq.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); const signalReq = { headers: { authorization: `Bearer ${exampleSignalToken}` }, path: '/some-test-instance/api/signal-endpoint/', }; middleware(signalReq, res, next); expect(signalReq.headers.authorization).toBe(exampleSignalToken); }); }); //# sourceMappingURL=bearer-token-middleware.test.js.map