UNPKG

unleash-server

Version:

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

98 lines 3.55 kB
"use strict"; // Copy of https://github.com/Unleash/unleash-proxy/blob/main/src/test/create-context.test.ts. Object.defineProperty(exports, "__esModule", { value: true }); const create_context_1 = require("./create-context"); test('should remove undefined properties', () => { const context = (0, create_context_1.createContext)({ appName: undefined, userId: '123', }); expect(context).not.toHaveProperty('appName'); expect(context).toHaveProperty('userId'); expect(context.userId).toBe('123'); }); test('should move rest props to properties', () => { const context = (0, create_context_1.createContext)({ userId: '123', tenantId: 'some-tenant', region: 'eu', }); expect(context.userId).toBe('123'); expect(context).not.toHaveProperty('tenantId'); expect(context).not.toHaveProperty('region'); expect(context.properties?.region).toBe('eu'); expect(context.properties?.tenantId).toBe('some-tenant'); }); test('should keep properties', () => { const context = (0, create_context_1.createContext)({ userId: '123', tenantId: 'some-tenant', region: 'eu', properties: { a: 'b', b: 'test', }, }); expect(context.userId).toBe('123'); expect(context).not.toHaveProperty('tenantId'); expect(context).not.toHaveProperty('region'); expect(context.properties?.region).toBe('eu'); expect(context.properties?.tenantId).toBe('some-tenant'); expect(context.properties?.a).toBe('b'); expect(context.properties?.b).toBe('test'); }); test('will not blow up if properties is an array', () => { const context = (0, create_context_1.createContext)({ userId: '123', tenantId: 'some-tenant', region: 'eu', properties: ['some'], }); expect(context.userId).toBe('123'); expect(context).not.toHaveProperty('tenantId'); expect(context).not.toHaveProperty('region'); }); test('will respect environment set in context', () => { const context = (0, create_context_1.createContext)({ userId: '123', tenantId: 'some-tenant', environment: 'development', region: 'eu', properties: ['some'], }); expect(context.environment).toBe('development'); }); test('will not set environment to be development if not set in context', () => { const context = (0, create_context_1.createContext)({ userId: '123', tenantId: 'some-tenant', region: 'eu', properties: ['some'], }); expect(context.environment).toBe(undefined); }); test('will enrich context with ip', () => { const query = {}; const ip = '192.168.10.0'; const result = (0, create_context_1.enrichContextWithIp)(query, ip); expect(result.remoteAddress).toBe(ip); }); test('will not change environment when enriching', () => { const query = { environment: 'production' }; const ip = '192.168.10.0'; const result = (0, create_context_1.enrichContextWithIp)(query, ip); expect(result.environment).toBe('production'); }); test.skip('will not blow up if userId is an array', () => { const context = (0, create_context_1.createContext)({ userId: ['123'], tenantId: 'some-tenant', region: 'eu', properties: ['some'], }); // console.log(context); expect(context.userId).toBe('123'); expect(context).not.toHaveProperty('tenantId'); expect(context).not.toHaveProperty('region'); }); //# sourceMappingURL=create-context.test.js.map