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

71 lines
2.4 KiB
TypeScript
Raw Normal View History

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);
});