From 622cec5e2d77fa2efa1495bafdc09ca956212225 Mon Sep 17 00:00:00 2001 From: FragginWagon Date: Wed, 28 Jan 2026 22:59:39 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20Remove=20unnecessary=20whitespac?= =?UTF-8?q?e=20in=20unit=20tests=20for=20useFeatureFlags?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unit/composables/useFeatureFlags.test.js | 79 ++++++++++--------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/code/websites/pokedex.online/tests/unit/composables/useFeatureFlags.test.js b/code/websites/pokedex.online/tests/unit/composables/useFeatureFlags.test.js index 87f96a0..5c844e5 100644 --- a/code/websites/pokedex.online/tests/unit/composables/useFeatureFlags.test.js +++ b/code/websites/pokedex.online/tests/unit/composables/useFeatureFlags.test.js @@ -27,7 +27,7 @@ describe('useFeatureFlags', () => { describe('isEnabled', () => { it('returns flag default value when no override exists', () => { const { isEnabled } = useFeatureFlags(); - + // ENABLE_CACHING defaults to true expect(isEnabled.value('enable-caching')).toBe(true); // DARK_MODE defaults to false @@ -41,9 +41,9 @@ describe('useFeatureFlags', () => { it('respects local override when set in same instance', () => { const { isEnabled, toggle } = useFeatureFlags(); - + expect(isEnabled.value('dark-mode')).toBe(false); - + toggle('dark-mode'); // Should be toggled in same instance expect(isEnabled.value('dark-mode')).toBe(true); @@ -51,7 +51,7 @@ describe('useFeatureFlags', () => { it('returns false for flag requiring permission without it', () => { const { isEnabled } = useFeatureFlags(); - + // GAMEMASTER_DIFF_VIEWER requires 'gamemaster-advanced' permission expect(isEnabled.value('gamemaster-diff-viewer')).toBe(false); }); @@ -60,9 +60,9 @@ describe('useFeatureFlags', () => { describe('toggle', () => { it('toggles flag override in development mode', () => { const { toggle, isEnabled } = useFeatureFlags(); - + expect(isEnabled.value('dark-mode')).toBe(false); - + const result = toggle('dark-mode'); expect(result).toBe(true); expect(isEnabled.value('dark-mode')).toBe(true); @@ -70,25 +70,28 @@ describe('useFeatureFlags', () => { it('persists override to localStorage', () => { const { toggle } = useFeatureFlags(); - + toggle('dark-mode'); - + const stored = localStorage.getItem('feature_flag_overrides'); expect(stored).not.toBeNull(); - + const overrides = JSON.parse(stored); expect(overrides['dark-mode']).toBe(true); }); it('loads overrides from localStorage on init', () => { // Set override in storage first - localStorage.setItem('feature_flag_overrides', JSON.stringify({ - 'dark-mode': true, - 'experimental-search': true - })); + localStorage.setItem( + 'feature_flag_overrides', + JSON.stringify({ + 'dark-mode': true, + 'experimental-search': true + }) + ); const { isEnabled } = useFeatureFlags(); - + expect(isEnabled.value('dark-mode')).toBe(true); expect(isEnabled.value('experimental-search')).toBe(true); }); @@ -97,22 +100,22 @@ describe('useFeatureFlags', () => { describe('reset', () => { it('removes override for specific flag', () => { const { isEnabled, toggle, reset } = useFeatureFlags(); - + toggle('dark-mode'); expect(isEnabled.value('dark-mode')).toBe(true); - + reset('dark-mode'); expect(isEnabled.value('dark-mode')).toBe(false); }); it('returns to default after reset', () => { const { isEnabled, toggle, reset } = useFeatureFlags(); - + // ENABLE_CACHING defaults to true const beforeToggle = isEnabled.value('enable-caching'); toggle('enable-caching'); expect(isEnabled.value('enable-caching')).not.toBe(beforeToggle); - + reset('enable-caching'); expect(isEnabled.value('enable-caching')).toBe(beforeToggle); }); @@ -121,12 +124,12 @@ describe('useFeatureFlags', () => { describe('resetAll', () => { it('clears all overrides', () => { const { isEnabled, toggle, resetAll } = useFeatureFlags(); - + toggle('dark-mode'); toggle('experimental-search'); - + resetAll(); - + // Should return to defaults expect(isEnabled.value('dark-mode')).toBe(false); expect(isEnabled.value('experimental-search')).toBe(false); @@ -134,10 +137,10 @@ describe('useFeatureFlags', () => { it('clears localStorage after reset', () => { const { toggle, resetAll } = useFeatureFlags(); - + toggle('dark-mode'); resetAll(); - + const stored = localStorage.getItem('feature_flag_overrides'); expect(stored).toBe('{}'); }); @@ -146,12 +149,12 @@ describe('useFeatureFlags', () => { describe('getFlags', () => { it('returns array of all flags with status', () => { const { getFlags } = useFeatureFlags(); - + const flags = getFlags(); - + expect(Array.isArray(flags)).toBe(true); expect(flags.length).toBeGreaterThan(0); - + const darkMode = flags.find(f => f.name === 'dark-mode'); expect(darkMode).toBeDefined(); expect(darkMode).toHaveProperty('isEnabled'); @@ -161,25 +164,25 @@ describe('useFeatureFlags', () => { it('marks flags with overrides', () => { const { getFlags, toggle } = useFeatureFlags(); - + toggle('dark-mode'); - + const flags = getFlags(); const darkMode = flags.find(f => f.name === 'dark-mode'); - + expect(darkMode.hasOverride).toBe(true); expect(darkMode.override).toBe(true); }); it('indicates permission requirements for flags', () => { const { getFlags } = useFeatureFlags(); - + const flags = getFlags(); - + // Should have flags with and without permissions const withPerm = flags.find(f => f.requiresPermission); const withoutPerm = flags.find(f => !f.requiresPermission); - + expect(withPerm).toBeDefined(); expect(withoutPerm).toBeDefined(); }); @@ -188,27 +191,27 @@ describe('useFeatureFlags', () => { describe('setBackendFlags', () => { it('sets flags from backend response', () => { const { isEnabled, setBackendFlags } = useFeatureFlags(); - + expect(isEnabled.value('dark-mode')).toBe(false); - + setBackendFlags({ 'dark-mode': true, 'experimental-search': true }); - + expect(isEnabled.value('dark-mode')).toBe(true); expect(isEnabled.value('experimental-search')).toBe(true); }); it('local overrides take precedence over backend flags', () => { const { isEnabled, toggle, setBackendFlags } = useFeatureFlags(); - + toggle('dark-mode'); // Local override to true - + setBackendFlags({ 'dark-mode': false // Backend says false }); - + // Local override should win expect(isEnabled.value('dark-mode')).toBe(true); });