From b7157c8b19e4886dc7ed9451cb587ad8184c1d2b Mon Sep 17 00:00:00 2001 From: "garo (they/them)" <3411715+shrouxm@users.noreply.github.com> Date: Thu, 30 Jan 2025 15:29:56 -0800 Subject: [PATCH] =?UTF-8?q?feat:=20enable=20offline=20feature=20flag!=20?= =?UTF-8?q?=F0=9F=8E=89=20(#2852)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dev-client/src/config/featureFlags.test.ts | 36 ++++++++++++++++------ dev-client/src/config/featureFlags.ts | 2 +- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/dev-client/src/config/featureFlags.test.ts b/dev-client/src/config/featureFlags.test.ts index 14c1296a4..807d7dfe6 100644 --- a/dev-client/src/config/featureFlags.test.ts +++ b/dev-client/src/config/featureFlags.test.ts @@ -30,6 +30,9 @@ test('feature flags can be enabled', () => { }, })); + const {kvStorage} = require('terraso-mobile-client/persistence/kvStorage'); + kvStorage.setBool('FF_offline', false); + const { isFlagEnabled, willFlagBeEnabledOnReload, @@ -54,9 +57,6 @@ test('feature flags can be disabled', () => { }, })); - const {kvStorage} = require('terraso-mobile-client/persistence/kvStorage'); - kvStorage.setBool('FF_offline', true); - const { isFlagEnabled, willFlagBeEnabledOnReload, @@ -73,7 +73,25 @@ test('feature flags can be disabled', () => { }); }); -test('offline feature flag starts on in dev mode and can be disabled', () => { +test('testing feature flag is disabled in production', () => { + jest.isolateModules(() => { + jest.mock('terraso-mobile-client/config/index', () => ({ + APP_CONFIG: { + environment: 'production', + }, + })); + + const { + isFlagEnabled, + willFlagBeEnabledOnReload, + } = require('terraso-mobile-client/config/featureFlags'); + + expect(isFlagEnabled('FF_testing')).toBe(false); + expect(willFlagBeEnabledOnReload('FF_testing')).toBe(false); + }); +}); + +test('testing feature flag starts on in dev mode and can be disabled', () => { jest.isolateModules(() => { jest.mock('terraso-mobile-client/config/index', () => ({ APP_CONFIG: { @@ -87,13 +105,13 @@ test('offline feature flag starts on in dev mode and can be disabled', () => { setFlagWillBeEnabledOnReload, } = require('terraso-mobile-client/config/featureFlags'); - expect(isFlagEnabled('FF_offline')).toBe(true); - expect(willFlagBeEnabledOnReload('FF_offline')).toBe(true); + expect(isFlagEnabled('FF_testing')).toBe(true); + expect(willFlagBeEnabledOnReload('FF_testing')).toBe(true); - setFlagWillBeEnabledOnReload('FF_offline', false); + setFlagWillBeEnabledOnReload('FF_testing', false); - expect(isFlagEnabled('FF_offline')).toBe(true); + expect(isFlagEnabled('FF_testing')).toBe(true); - expect(willFlagBeEnabledOnReload('FF_offline')).toBe(false); + expect(willFlagBeEnabledOnReload('FF_testing')).toBe(false); }); }); diff --git a/dev-client/src/config/featureFlags.ts b/dev-client/src/config/featureFlags.ts index f9f9ff059..42d9f4184 100644 --- a/dev-client/src/config/featureFlags.ts +++ b/dev-client/src/config/featureFlags.ts @@ -23,7 +23,7 @@ import {kvStorage} from 'terraso-mobile-client/persistence/kvStorage'; // 2) Add a FeatureFlagControl for it export const featureFlags = { FF_offline: { - defaultIsEnabled: false, + defaultIsEnabled: true, defaultIsEnabledInDevelopment: true, description: 'Enables support for offline mode', },