UNPKG

unleash-server

Version:

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

77 lines 3.05 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const supertest_1 = __importDefault(require("supertest")); const services_1 = require("../../../services"); const test_config_1 = require("../../../../test/config/test-config"); const store_1 = __importDefault(require("../../../../test/fixtures/store")); const app_1 = __importDefault(require("../../../app")); const user_1 = __importDefault(require("../../../types/user")); const currentUser = new user_1.default({ id: 1337, email: 'test@mail.com' }); async function getSetup() { const base = `/random${Math.round(Math.random() * 1000)}`; const stores = (0, store_1.default)(); await stores.userStore.insert(currentUser); const config = (0, test_config_1.createTestConfig)({ preHook: (a) => { a.use((req, res, next) => { req.user = currentUser; next(); }); }, server: { baseUriPath: base }, }); const services = (0, services_1.createServices)(stores, config); const app = await (0, app_1.default)(config, stores, services); return { base, userStore: stores.userStore, sessionStore: stores.sessionStore, request: (0, supertest_1.default)(app), }; } test('should return current user', async () => { expect.assertions(1); const { request, base } = await getSetup(); return request .get(`${base}/api/admin/user`) .expect(200) .expect('Content-Type', /json/) .expect((res) => { expect(res.body.user.email).toBe(currentUser.email); }); }); const owaspPassword = 't7GTx&$Y9pcsnxRv6'; test('should allow user to change password', async () => { expect.assertions(2); const { request, base, userStore } = await getSetup(); const before = await userStore.get(currentUser.id); // @ts-ignore expect(before.passwordHash).toBeFalsy(); await request .post(`${base}/api/admin/user/change-password`) .send({ password: owaspPassword, confirmPassword: owaspPassword }) .expect(200); const updated = await userStore.get(currentUser.id); // @ts-ignore expect(updated.passwordHash).toBeTruthy(); }); test('should deny if password and confirmPassword are not equal', async () => { expect.assertions(0); const { request, base } = await getSetup(); return request .post(`${base}/api/admin/user/change-password`) .send({ password: owaspPassword, confirmPassword: 'somethingelse' }) .expect(400); }); test('should deny if password does not fulfill owasp criteria', async () => { expect.assertions(0); const { request, base } = await getSetup(); return request .post(`${base}/api/admin/user/change-password`) .send({ password: 'hunter123', confirmPassword: 'hunter123' }) .expect(400); }); //# sourceMappingURL=user.test.js.map