1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-11-01 19:07:38 +01:00
unleash.unleash/src/test/e2e/services/feature-toggle-service-v2.e2e.test.ts

100 lines
2.5 KiB
TypeScript
Raw Normal View History

import FeatureToggleServiceV2 from '../../../lib/services/feature-toggle-service-v2';
import { IStrategyConfig } from '../../../lib/types/model';
import { createTestConfig } from '../../config/test-config';
import dbInit from '../helpers/database-init';
let stores;
let db;
let service: FeatureToggleServiceV2;
beforeAll(async () => {
const config = createTestConfig();
db = await dbInit(
'feature_toggle_service_v2_service_serial',
config.getLogger,
);
stores = db.stores;
service = new FeatureToggleServiceV2(stores, config);
});
afterAll(async () => {
await db.destroy();
});
test('Should create feature toggle strategy configuration', async () => {
const config: Omit<IStrategyConfig, 'id'> = {
name: 'default',
constraints: [],
parameters: {},
};
await service.createFeatureToggle(
'default',
{
name: 'Demo',
},
'test',
);
const createdConfig = await service.createStrategy(
config,
'default',
'Demo',
);
expect(createdConfig.name).toEqual('default');
expect(createdConfig.id).toBeDefined();
});
test('Should be able to update existing strategy configuration', async () => {
const config: Omit<IStrategyConfig, 'id'> = {
name: 'default',
constraints: [],
parameters: {},
};
await service.createFeatureToggle(
'default',
{
name: 'update-existing-strategy',
},
'test',
);
const createdConfig = await service.createStrategy(
config,
'default',
'update-existing-strategy',
);
expect(createdConfig.name).toEqual('default');
const updatedConfig = await service.updateStrategy(createdConfig.id, {
parameters: { b2b: true },
});
expect(createdConfig.id).toEqual(updatedConfig.id);
expect(updatedConfig.parameters).toEqual({ b2b: true });
});
test('Should be able to get strategy by id', async () => {
const config: Omit<IStrategyConfig, 'id'> = {
name: 'default',
constraints: [],
parameters: {},
};
await service.createFeatureToggle(
'default',
{
name: 'get-strategy-by-id',
},
'test',
);
const createdConfig = await service.createStrategy(
config,
'default',
'Demo',
);
const fetchedConfig = await service.getStrategy(createdConfig.id);
expect(fetchedConfig).toEqual(createdConfig);
});