unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
53 lines • 1.79 kB
JavaScript
import dbInit from '../../../test/e2e/helpers/database-init.js';
let db;
beforeAll(async () => {
db = await dbInit('client_feature_toggle_store_segments_order');
await db
.rawDatabase('environments')
.insert({
name: 'default',
type: 'production',
})
.onConflict('name')
.ignore();
await db.rawDatabase('features').insert({
name: 'seg-flag',
});
await db.rawDatabase('feature_environments').insert({
environment: 'default',
feature_name: 'seg-flag',
enabled: true,
});
await db.rawDatabase('feature_strategies').insert({
id: 's1',
feature_name: 'seg-flag',
project_name: 'default',
environment: 'default',
strategy_name: 'default',
parameters: {},
constraints: [],
sort_order: 0,
});
await db.rawDatabase('segments').insert([
{ id: 1, name: 'seg-1', constraints: [] },
{ id: 2, name: 'seg-2', constraints: [] },
{ id: 3, name: 'seg-3', constraints: [] },
]);
// Insert in non-sorted order to ensure we normalize deterministically.
await db.rawDatabase('feature_strategy_segment').insert([
{ feature_strategy_id: 's1', segment_id: 3 },
{ feature_strategy_id: 's1', segment_id: 1 },
{ feature_strategy_id: 's1', segment_id: 2 },
]);
});
afterAll(async () => {
await db.destroy();
});
test('sorts segment ids on strategies in client features store', async () => {
const result = await db.stores.clientFeatureToggleStore.getClient({
environment: 'default',
});
expect(result).toHaveLength(1);
expect(result[0].strategies?.[0].segments).toEqual([1, 2, 3]);
});
//# sourceMappingURL=client-feature-toggle-store.test.js.map