🧹 Remove unnecessary whitespace in unit tests for useFeatureFlags

This commit is contained in:
2026-01-28 22:59:39 +00:00
parent 6ec72ff36f
commit 622cec5e2d

View File

@@ -27,7 +27,7 @@ describe('useFeatureFlags', () => {
describe('isEnabled', () => { describe('isEnabled', () => {
it('returns flag default value when no override exists', () => { it('returns flag default value when no override exists', () => {
const { isEnabled } = useFeatureFlags(); const { isEnabled } = useFeatureFlags();
// ENABLE_CACHING defaults to true // ENABLE_CACHING defaults to true
expect(isEnabled.value('enable-caching')).toBe(true); expect(isEnabled.value('enable-caching')).toBe(true);
// DARK_MODE defaults to false // DARK_MODE defaults to false
@@ -41,9 +41,9 @@ describe('useFeatureFlags', () => {
it('respects local override when set in same instance', () => { it('respects local override when set in same instance', () => {
const { isEnabled, toggle } = useFeatureFlags(); const { isEnabled, toggle } = useFeatureFlags();
expect(isEnabled.value('dark-mode')).toBe(false); expect(isEnabled.value('dark-mode')).toBe(false);
toggle('dark-mode'); toggle('dark-mode');
// Should be toggled in same instance // Should be toggled in same instance
expect(isEnabled.value('dark-mode')).toBe(true); expect(isEnabled.value('dark-mode')).toBe(true);
@@ -51,7 +51,7 @@ describe('useFeatureFlags', () => {
it('returns false for flag requiring permission without it', () => { it('returns false for flag requiring permission without it', () => {
const { isEnabled } = useFeatureFlags(); const { isEnabled } = useFeatureFlags();
// GAMEMASTER_DIFF_VIEWER requires 'gamemaster-advanced' permission // GAMEMASTER_DIFF_VIEWER requires 'gamemaster-advanced' permission
expect(isEnabled.value('gamemaster-diff-viewer')).toBe(false); expect(isEnabled.value('gamemaster-diff-viewer')).toBe(false);
}); });
@@ -60,9 +60,9 @@ describe('useFeatureFlags', () => {
describe('toggle', () => { describe('toggle', () => {
it('toggles flag override in development mode', () => { it('toggles flag override in development mode', () => {
const { toggle, isEnabled } = useFeatureFlags(); const { toggle, isEnabled } = useFeatureFlags();
expect(isEnabled.value('dark-mode')).toBe(false); expect(isEnabled.value('dark-mode')).toBe(false);
const result = toggle('dark-mode'); const result = toggle('dark-mode');
expect(result).toBe(true); expect(result).toBe(true);
expect(isEnabled.value('dark-mode')).toBe(true); expect(isEnabled.value('dark-mode')).toBe(true);
@@ -70,25 +70,28 @@ describe('useFeatureFlags', () => {
it('persists override to localStorage', () => { it('persists override to localStorage', () => {
const { toggle } = useFeatureFlags(); const { toggle } = useFeatureFlags();
toggle('dark-mode'); toggle('dark-mode');
const stored = localStorage.getItem('feature_flag_overrides'); const stored = localStorage.getItem('feature_flag_overrides');
expect(stored).not.toBeNull(); expect(stored).not.toBeNull();
const overrides = JSON.parse(stored); const overrides = JSON.parse(stored);
expect(overrides['dark-mode']).toBe(true); expect(overrides['dark-mode']).toBe(true);
}); });
it('loads overrides from localStorage on init', () => { it('loads overrides from localStorage on init', () => {
// Set override in storage first // Set override in storage first
localStorage.setItem('feature_flag_overrides', JSON.stringify({ localStorage.setItem(
'dark-mode': true, 'feature_flag_overrides',
'experimental-search': true JSON.stringify({
})); 'dark-mode': true,
'experimental-search': true
})
);
const { isEnabled } = useFeatureFlags(); const { isEnabled } = useFeatureFlags();
expect(isEnabled.value('dark-mode')).toBe(true); expect(isEnabled.value('dark-mode')).toBe(true);
expect(isEnabled.value('experimental-search')).toBe(true); expect(isEnabled.value('experimental-search')).toBe(true);
}); });
@@ -97,22 +100,22 @@ describe('useFeatureFlags', () => {
describe('reset', () => { describe('reset', () => {
it('removes override for specific flag', () => { it('removes override for specific flag', () => {
const { isEnabled, toggle, reset } = useFeatureFlags(); const { isEnabled, toggle, reset } = useFeatureFlags();
toggle('dark-mode'); toggle('dark-mode');
expect(isEnabled.value('dark-mode')).toBe(true); expect(isEnabled.value('dark-mode')).toBe(true);
reset('dark-mode'); reset('dark-mode');
expect(isEnabled.value('dark-mode')).toBe(false); expect(isEnabled.value('dark-mode')).toBe(false);
}); });
it('returns to default after reset', () => { it('returns to default after reset', () => {
const { isEnabled, toggle, reset } = useFeatureFlags(); const { isEnabled, toggle, reset } = useFeatureFlags();
// ENABLE_CACHING defaults to true // ENABLE_CACHING defaults to true
const beforeToggle = isEnabled.value('enable-caching'); const beforeToggle = isEnabled.value('enable-caching');
toggle('enable-caching'); toggle('enable-caching');
expect(isEnabled.value('enable-caching')).not.toBe(beforeToggle); expect(isEnabled.value('enable-caching')).not.toBe(beforeToggle);
reset('enable-caching'); reset('enable-caching');
expect(isEnabled.value('enable-caching')).toBe(beforeToggle); expect(isEnabled.value('enable-caching')).toBe(beforeToggle);
}); });
@@ -121,12 +124,12 @@ describe('useFeatureFlags', () => {
describe('resetAll', () => { describe('resetAll', () => {
it('clears all overrides', () => { it('clears all overrides', () => {
const { isEnabled, toggle, resetAll } = useFeatureFlags(); const { isEnabled, toggle, resetAll } = useFeatureFlags();
toggle('dark-mode'); toggle('dark-mode');
toggle('experimental-search'); toggle('experimental-search');
resetAll(); resetAll();
// Should return to defaults // Should return to defaults
expect(isEnabled.value('dark-mode')).toBe(false); expect(isEnabled.value('dark-mode')).toBe(false);
expect(isEnabled.value('experimental-search')).toBe(false); expect(isEnabled.value('experimental-search')).toBe(false);
@@ -134,10 +137,10 @@ describe('useFeatureFlags', () => {
it('clears localStorage after reset', () => { it('clears localStorage after reset', () => {
const { toggle, resetAll } = useFeatureFlags(); const { toggle, resetAll } = useFeatureFlags();
toggle('dark-mode'); toggle('dark-mode');
resetAll(); resetAll();
const stored = localStorage.getItem('feature_flag_overrides'); const stored = localStorage.getItem('feature_flag_overrides');
expect(stored).toBe('{}'); expect(stored).toBe('{}');
}); });
@@ -146,12 +149,12 @@ describe('useFeatureFlags', () => {
describe('getFlags', () => { describe('getFlags', () => {
it('returns array of all flags with status', () => { it('returns array of all flags with status', () => {
const { getFlags } = useFeatureFlags(); const { getFlags } = useFeatureFlags();
const flags = getFlags(); const flags = getFlags();
expect(Array.isArray(flags)).toBe(true); expect(Array.isArray(flags)).toBe(true);
expect(flags.length).toBeGreaterThan(0); expect(flags.length).toBeGreaterThan(0);
const darkMode = flags.find(f => f.name === 'dark-mode'); const darkMode = flags.find(f => f.name === 'dark-mode');
expect(darkMode).toBeDefined(); expect(darkMode).toBeDefined();
expect(darkMode).toHaveProperty('isEnabled'); expect(darkMode).toHaveProperty('isEnabled');
@@ -161,25 +164,25 @@ describe('useFeatureFlags', () => {
it('marks flags with overrides', () => { it('marks flags with overrides', () => {
const { getFlags, toggle } = useFeatureFlags(); const { getFlags, toggle } = useFeatureFlags();
toggle('dark-mode'); toggle('dark-mode');
const flags = getFlags(); const flags = getFlags();
const darkMode = flags.find(f => f.name === 'dark-mode'); const darkMode = flags.find(f => f.name === 'dark-mode');
expect(darkMode.hasOverride).toBe(true); expect(darkMode.hasOverride).toBe(true);
expect(darkMode.override).toBe(true); expect(darkMode.override).toBe(true);
}); });
it('indicates permission requirements for flags', () => { it('indicates permission requirements for flags', () => {
const { getFlags } = useFeatureFlags(); const { getFlags } = useFeatureFlags();
const flags = getFlags(); const flags = getFlags();
// Should have flags with and without permissions // Should have flags with and without permissions
const withPerm = flags.find(f => f.requiresPermission); const withPerm = flags.find(f => f.requiresPermission);
const withoutPerm = flags.find(f => !f.requiresPermission); const withoutPerm = flags.find(f => !f.requiresPermission);
expect(withPerm).toBeDefined(); expect(withPerm).toBeDefined();
expect(withoutPerm).toBeDefined(); expect(withoutPerm).toBeDefined();
}); });
@@ -188,27 +191,27 @@ describe('useFeatureFlags', () => {
describe('setBackendFlags', () => { describe('setBackendFlags', () => {
it('sets flags from backend response', () => { it('sets flags from backend response', () => {
const { isEnabled, setBackendFlags } = useFeatureFlags(); const { isEnabled, setBackendFlags } = useFeatureFlags();
expect(isEnabled.value('dark-mode')).toBe(false); expect(isEnabled.value('dark-mode')).toBe(false);
setBackendFlags({ setBackendFlags({
'dark-mode': true, 'dark-mode': true,
'experimental-search': true 'experimental-search': true
}); });
expect(isEnabled.value('dark-mode')).toBe(true); expect(isEnabled.value('dark-mode')).toBe(true);
expect(isEnabled.value('experimental-search')).toBe(true); expect(isEnabled.value('experimental-search')).toBe(true);
}); });
it('local overrides take precedence over backend flags', () => { it('local overrides take precedence over backend flags', () => {
const { isEnabled, toggle, setBackendFlags } = useFeatureFlags(); const { isEnabled, toggle, setBackendFlags } = useFeatureFlags();
toggle('dark-mode'); // Local override to true toggle('dark-mode'); // Local override to true
setBackendFlags({ setBackendFlags({
'dark-mode': false // Backend says false 'dark-mode': false // Backend says false
}); });
// Local override should win // Local override should win
expect(isEnabled.value('dark-mode')).toBe(true); expect(isEnabled.value('dark-mode')).toBe(true);
}); });