mirror of
https://github.com/Unleash/unleash.git
synced 2024-11-01 19:07:38 +01:00
71 lines
2.4 KiB
TypeScript
71 lines
2.4 KiB
TypeScript
|
import { IUnleashStores } from '../../../lib/types';
|
||
|
import dbInit from '../helpers/database-init';
|
||
|
import getLogger from '../../fixtures/no-logger';
|
||
|
import { IFeatureEnvironmentStore } from '../../../lib/types/stores/feature-environment-store';
|
||
|
import { IFeatureToggleStore } from '../../../lib/types/stores/feature-toggle-store';
|
||
|
import { IEnvironmentStore } from '../../../lib/types/stores/environment-store';
|
||
|
|
||
|
let db;
|
||
|
let stores: IUnleashStores;
|
||
|
let featureEnvironmentStore: IFeatureEnvironmentStore;
|
||
|
let featureStore: IFeatureToggleStore;
|
||
|
let environmentStore: IEnvironmentStore;
|
||
|
|
||
|
beforeEach(async () => {
|
||
|
db = await dbInit('feature_environment_store_serial', getLogger);
|
||
|
stores = db.stores;
|
||
|
featureEnvironmentStore = stores.featureEnvironmentStore;
|
||
|
environmentStore = stores.environmentStore;
|
||
|
featureStore = stores.featureToggleStore;
|
||
|
});
|
||
|
|
||
|
afterEach(async () => {
|
||
|
await db.destroy();
|
||
|
});
|
||
|
|
||
|
test('Setting enabled to same as existing value returns 0', async () => {
|
||
|
let envName = 'enabled-to-true';
|
||
|
let featureName = 'enabled-to-true-feature';
|
||
|
await environmentStore.create({
|
||
|
name: envName,
|
||
|
enabled: true,
|
||
|
type: 'test',
|
||
|
});
|
||
|
await featureStore.create('default', { name: featureName });
|
||
|
await featureEnvironmentStore.connectProject(envName, 'default');
|
||
|
await featureEnvironmentStore.connectFeatures(envName, 'default');
|
||
|
const enabledStatus = await featureEnvironmentStore.isEnvironmentEnabled(
|
||
|
featureName,
|
||
|
envName,
|
||
|
);
|
||
|
const changed = await featureEnvironmentStore.setEnvironmentEnabledStatus(
|
||
|
envName,
|
||
|
featureName,
|
||
|
enabledStatus,
|
||
|
);
|
||
|
expect(changed).toBe(0);
|
||
|
});
|
||
|
|
||
|
test('Setting enabled to not existing value returns 1', async () => {
|
||
|
let envName = 'enabled-toggle';
|
||
|
let featureName = 'enabled-toggle-feature';
|
||
|
await environmentStore.create({
|
||
|
name: envName,
|
||
|
enabled: true,
|
||
|
type: 'test',
|
||
|
});
|
||
|
await featureStore.create('default', { name: featureName });
|
||
|
await featureEnvironmentStore.connectProject(envName, 'default');
|
||
|
await featureEnvironmentStore.connectFeatures(envName, 'default');
|
||
|
const enabledStatus = await featureEnvironmentStore.isEnvironmentEnabled(
|
||
|
featureName,
|
||
|
envName,
|
||
|
);
|
||
|
const changed = await featureEnvironmentStore.setEnvironmentEnabledStatus(
|
||
|
envName,
|
||
|
featureName,
|
||
|
!enabledStatus,
|
||
|
);
|
||
|
expect(changed).toBe(1);
|
||
|
});
|