Compare commits

...

2 Commits

Author SHA1 Message Date
Arvin Xu 6f723a2a6c test(server-config): preserve bootstrap flag fallback 2026-04-24 01:02:54 +08:00
Arvin Xu 231d1bdcf7 ♻️ refactor(runtime-config): drop feature flag bootstrap injection 2026-04-24 00:50:31 +08:00
+19 -1
View File
@@ -1,8 +1,9 @@
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { DEFAULT_FEATURE_FLAGS, mapFeatureFlagsEnvToState } from '@/config/featureFlags';
import { type GlobalRuntimeConfig } from '@/types/serverConfig';
import { createServerConfigStore } from './store';
import { createServerConfigStore, initServerConfigStore } from './store';
// Mock SWR
let mockSWRData: GlobalRuntimeConfig | undefined;
@@ -95,6 +96,23 @@ describe('ServerConfigAction', () => {
expect(store.getState().serverConfig).toEqual({ aiProvider: {}, telemetry: {} });
});
it('should preserve bootstrapped feature flags when the fetch fails', () => {
mockSWRData = undefined;
mockSWRError = new Error('network error');
const featureFlags = {
...mapFeatureFlagsEnvToState(DEFAULT_FEATURE_FLAGS),
hideGitHub: true,
showCloudPromotion: true,
};
const store = initServerConfigStore({ featureFlags });
store.getState().useInitServerConfig();
expect(store.getState().serverConfigInit).toBe(true);
expect(store.getState().featureFlags).toEqual(featureFlags);
});
it('should pass a fetcher function that calls globalService', async () => {
const { useOnlyFetchOnceSWR } = vi.mocked(await import('@/libs/swr'));