fix(editor): Fix local storage flags defaulting to undefined string (#7603)
useStorage takes the default value `undefined` and sets it in local storage.. also returns "undefined" as string which breaks onboarding flows Github issue / Community forum post (link here to close automatically):
This commit is contained in:
@@ -5,6 +5,8 @@ import { useSettingsStore } from '@/stores/settings.store';
|
||||
import { useRootStore } from '@/stores/n8nRoot.store';
|
||||
import { useTelemetryStore } from '@/stores/telemetry.store';
|
||||
import type { IN8nUISettings } from 'n8n-workflow';
|
||||
import { LOCAL_STORAGE_EXPERIMENT_OVERRIDES } from '@/constants';
|
||||
import { nextTick } from 'vue';
|
||||
|
||||
const DEFAULT_POSTHOG_SETTINGS: IN8nUISettings['posthog'] = {
|
||||
enabled: true,
|
||||
@@ -55,7 +57,6 @@ function setup() {
|
||||
|
||||
vi.spyOn(window.posthog, 'init');
|
||||
vi.spyOn(window.posthog, 'identify');
|
||||
vi.spyOn(window.Storage.prototype, 'setItem');
|
||||
vi.spyOn(telemetryStore, 'track');
|
||||
}
|
||||
|
||||
@@ -117,7 +118,7 @@ describe('Posthog store', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('sets override feature flags', () => {
|
||||
it('sets override feature flags', async () => {
|
||||
const TEST = 'test';
|
||||
const flags = {
|
||||
[TEST]: 'variant',
|
||||
@@ -126,17 +127,17 @@ describe('Posthog store', () => {
|
||||
posthog.init(flags);
|
||||
|
||||
window.featureFlags?.override(TEST, 'override');
|
||||
await nextTick();
|
||||
|
||||
expect(posthog.getVariant('test')).toEqual('override');
|
||||
expect(window.posthog?.init).toHaveBeenCalled();
|
||||
expect(window.localStorage.setItem).toHaveBeenCalledWith(
|
||||
'N8N_EXPERIMENT_OVERRIDES',
|
||||
expect(window.localStorage.getItem(LOCAL_STORAGE_EXPERIMENT_OVERRIDES)).toEqual(
|
||||
JSON.stringify({ test: 'override' }),
|
||||
);
|
||||
|
||||
window.featureFlags?.override('other_test', 'override');
|
||||
expect(window.localStorage.setItem).toHaveBeenCalledWith(
|
||||
'N8N_EXPERIMENT_OVERRIDES',
|
||||
await nextTick();
|
||||
expect(window.localStorage.getItem(LOCAL_STORAGE_EXPERIMENT_OVERRIDES)).toEqual(
|
||||
JSON.stringify({ test: 'override', other_test: 'override' }),
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user