unleash-server
Version:
Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.
86 lines • 3 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const no_logger_1 = __importDefault(require("../../test/fixtures/no-logger"));
const pat_middleware_1 = __importDefault(require("./pat-middleware"));
const user_1 = __importDefault(require("../types/user"));
let config;
beforeEach(() => {
config = {
getLogger: no_logger_1.default,
flagResolver: {
isEnabled: jest.fn().mockReturnValue(true),
},
};
});
test('should not set user if unknown token', async () => {
const userService = {
getUserByPersonalAccessToken: jest.fn(),
};
const func = (0, pat_middleware_1.default)(config, { userService });
const cb = jest.fn();
const req = {
header: jest.fn().mockReturnValue('user:some-token'),
user: undefined,
};
await func(req, undefined, cb);
expect(cb).toHaveBeenCalled();
expect(req.header).toHaveBeenCalled();
expect(req.user).toBeFalsy();
});
test('should not set user if token wrong format', async () => {
const userService = {
getUserByPersonalAccessToken: jest.fn(),
};
const func = (0, pat_middleware_1.default)(config, { userService });
const cb = jest.fn();
const req = {
header: jest.fn().mockReturnValue('token-not-starting-with-user'),
user: undefined,
};
await func(req, undefined, cb);
expect(userService.getUserByPersonalAccessToken).not.toHaveBeenCalled();
expect(cb).toHaveBeenCalled();
expect(req.header).toHaveBeenCalled();
expect(req.user).toBeFalsy();
});
test('should add user if known token', async () => {
const apiUser = new user_1.default({
id: 44,
username: 'my-user',
});
const userService = {
getUserByPersonalAccessToken: jest.fn().mockReturnValue(apiUser),
};
const func = (0, pat_middleware_1.default)(config, { userService });
const cb = jest.fn();
const req = {
header: jest.fn().mockReturnValue('user:some-known-token'),
user: undefined,
path: '/api/client',
};
await func(req, undefined, cb);
expect(cb).toHaveBeenCalled();
expect(req.header).toHaveBeenCalled();
expect(req.user).toBe(apiUser);
});
test('should call next if userService throws exception', async () => {
no_logger_1.default.setMuteError(true);
const userService = {
getUserByPersonalAccessToken: () => {
throw new Error('Error occurred');
},
};
const func = (0, pat_middleware_1.default)(config, { userService });
const cb = jest.fn();
const req = {
header: jest.fn().mockReturnValue('user:some-token'),
user: undefined,
};
await func(req, undefined, cb);
expect(cb).toHaveBeenCalled();
no_logger_1.default.setMuteError(false);
});
//# sourceMappingURL=pat-middleware.test.js.map