UNPKG

unleash-server

Version:

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

106 lines 4.98 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const api_token_service_1 = require("./api-token-service"); const test_config_1 = require("../../test/config/test-config"); const api_token_1 = require("../types/models/api-token"); const fake_api_token_store_1 = __importDefault(require("../../test/fixtures/fake-api-token-store")); const fake_environment_store_1 = __importDefault(require("../../test/fixtures/fake-environment-store")); const fake_event_store_1 = __importDefault(require("../../test/fixtures/fake-event-store")); const types_1 = require("../types"); const date_fns_1 = require("date-fns"); test('Should init api token', async () => { const token = { environment: '*', project: '*', secret: '*:*:some-random-string', type: api_token_1.ApiTokenType.ADMIN, username: 'admin', }; const config = (0, test_config_1.createTestConfig)({ authentication: { initApiTokens: [token], }, }); const apiTokenStore = new fake_api_token_store_1.default(); const environmentStore = new fake_environment_store_1.default(); const eventStore = new fake_event_store_1.default(); const insertCalled = new Promise((resolve) => { apiTokenStore.on('insert', resolve); }); new api_token_service_1.ApiTokenService({ apiTokenStore, environmentStore, eventStore }, config); await insertCalled; const tokens = await apiTokenStore.getAll(); expect(tokens).toHaveLength(1); }); test("Shouldn't return frontend token when secret is undefined", async () => { const token = { environment: 'default', projects: ['*'], secret: '*:*:some-random-string', type: api_token_1.ApiTokenType.FRONTEND, username: 'front', expiresAt: null, }; const config = (0, test_config_1.createTestConfig)({}); const apiTokenStore = new fake_api_token_store_1.default(); const environmentStore = new fake_environment_store_1.default(); const eventStore = new fake_event_store_1.default(); await environmentStore.create({ name: 'default', enabled: true, protected: true, type: 'test', sortOrder: 1, }); const apiTokenService = new api_token_service_1.ApiTokenService({ apiTokenStore, environmentStore, eventStore }, config); await apiTokenService.createApiTokenWithProjects(token); await apiTokenService.fetchActiveTokens(); expect(apiTokenService.getUserForToken(undefined)).toEqual(undefined); expect(apiTokenService.getUserForToken('')).toEqual(undefined); }); test('Api token operations should all have events attached', async () => { const token = { environment: 'default', projects: ['*'], secret: '*:*:some-random-string', type: api_token_1.ApiTokenType.FRONTEND, username: 'front', expiresAt: null, }; const config = (0, test_config_1.createTestConfig)({}); const apiTokenStore = new fake_api_token_store_1.default(); const environmentStore = new fake_environment_store_1.default(); const eventStore = new fake_event_store_1.default(); await environmentStore.create({ name: 'default', enabled: true, protected: true, type: 'test', sortOrder: 1, }); const apiTokenService = new api_token_service_1.ApiTokenService({ apiTokenStore, environmentStore, eventStore }, config); let saved = await apiTokenService.createApiTokenWithProjects(token); let newExpiry = (0, date_fns_1.addDays)(new Date(), 30); await apiTokenService.updateExpiry(saved.secret, newExpiry, 'test'); await apiTokenService.delete(saved.secret, 'test'); const events = await eventStore.getEvents(); const createdApiTokenEvents = events.filter((e) => e.type === types_1.API_TOKEN_CREATED); expect(createdApiTokenEvents).toHaveLength(1); expect(createdApiTokenEvents[0].preData).toBeUndefined(); expect(createdApiTokenEvents[0].data.secret).toBeUndefined(); const updatedApiTokenEvents = events.filter((e) => e.type === types_1.API_TOKEN_UPDATED); expect(updatedApiTokenEvents).toHaveLength(1); expect(updatedApiTokenEvents[0].preData.expiresAt).toBeDefined(); expect(updatedApiTokenEvents[0].preData.secret).toBeUndefined(); expect(updatedApiTokenEvents[0].data.secret).toBeUndefined(); expect(updatedApiTokenEvents[0].data.expiresAt).toBe(newExpiry); const deletedApiTokenEvents = events.filter((e) => e.type === types_1.API_TOKEN_DELETED); expect(deletedApiTokenEvents).toHaveLength(1); expect(deletedApiTokenEvents[0].data).toBeUndefined(); expect(deletedApiTokenEvents[0].preData).toBeDefined(); expect(deletedApiTokenEvents[0].preData.secret).toBeUndefined(); }); //# sourceMappingURL=api-token-service.test.js.map