[core] change FeatureFlagState to {On,Off}

This commit is contained in:
Bilawal Hameed
2020-03-30 11:39:15 +02:00
parent d911da26d2
commit 70252160e5
6 changed files with 25 additions and 26 deletions
@@ -34,8 +34,8 @@ import {
*/
export enum FeatureFlagState {
NotEnabled = 0,
Enabled = 1,
Off = 0,
On = 1,
}
export interface FeatureFlagsApi {
@@ -45,9 +45,9 @@ describe('FeatureFlags', () => {
featureFlags = new FeatureFlagsImpl();
expect(featureFlags.getFlags().toObject()).toMatchObject({
'feature-flag-one': FeatureFlagState.Enabled,
'feature-flag-two': FeatureFlagState.Enabled,
'feature-flag-three': FeatureFlagState.NotEnabled,
'feature-flag-one': FeatureFlagState.On,
'feature-flag-two': FeatureFlagState.On,
'feature-flag-three': FeatureFlagState.Off,
});
});
@@ -63,21 +63,21 @@ describe('FeatureFlags', () => {
featureFlags = new FeatureFlagsImpl();
expect(featureFlags.getFlags().get('feature-flag-one')).toEqual(
FeatureFlagState.Enabled,
FeatureFlagState.On,
);
expect(featureFlags.getFlags().get('feature-flag-two')).toEqual(
FeatureFlagState.NotEnabled,
FeatureFlagState.Off,
);
expect(featureFlags.getFlags().get('feature-flag-three')).toEqual(
FeatureFlagState.NotEnabled,
FeatureFlagState.Off,
);
});
it('sets the correct values', () => {
const flags = featureFlags.getFlags();
flags.set('feature-flag-zero', FeatureFlagState.Enabled);
flags.set('feature-flag-zero', FeatureFlagState.On);
expect(flags.get('feature-flag-zero')).toEqual(FeatureFlagState.Enabled);
expect(flags.get('feature-flag-zero')).toEqual(FeatureFlagState.On);
expect(window.localStorage.getItem('featureFlags')).toEqual(
'{"feature-flag-zero":1}',
);
@@ -96,9 +96,7 @@ describe('FeatureFlags', () => {
const flags = featureFlags.getFlags();
flags.delete('feature-flag-one');
expect(flags.get('feature-flag-one')).toEqual(
FeatureFlagState.NotEnabled,
);
expect(flags.get('feature-flag-one')).toEqual(FeatureFlagState.Off);
expect(window.localStorage.getItem('featureFlags')).toEqual(
'{"feature-flag-two":0}',
);
+3 -2
View File
@@ -73,7 +73,7 @@ export class UserFlags extends Map<FeatureFlagName, FeatureFlagState> {
}
get(name: FeatureFlagName): FeatureFlagState {
return super.get(name) || FeatureFlagState.NotEnabled;
return super.get(name) || FeatureFlagState.Off;
}
set(name: FeatureFlagName, state: FeatureFlagState): this {
@@ -168,9 +168,10 @@ export class FeatureFlagsRegistry extends Array<FeatureFlagsRegistryItem> {
*/
export class FeatureFlags implements FeatureFlagsApi {
public registeredFeatureFlags: FeatureFlagsRegistryItem[] = [];
private readonly userFlags: UserFlags = UserFlags.load();
private userFlags: UserFlags | undefined;
getFlags(): UserFlags {
if (!this.userFlags) this.userFlags = UserFlags.load();
return this.userFlags;
}