diff --git a/packages/lib/models/Setting.test.ts b/packages/lib/models/Setting.test.ts index b6ded4edad0..3566f36ff75 100644 --- a/packages/lib/models/Setting.test.ts +++ b/packages/lib/models/Setting.test.ts @@ -226,6 +226,14 @@ describe('models/Setting', function() { expect(Setting.value('style.editor.contentMaxWidth')).toBe(600); // Changed })); + it('should skip values that are already set', (async () => { + await Setting.reset(); + + Setting.setValue('sync.target', 9); + Setting.applyDefaultMigrations(); + expect(Setting.value('sync.target')).toBe(9); // Not changed + })); + it('should allow skipping default migrations', (async () => { await Setting.reset(); diff --git a/packages/lib/models/Setting.ts b/packages/lib/models/Setting.ts index a079d42df85..23910e9be4b 100644 --- a/packages/lib/models/Setting.ts +++ b/packages/lib/models/Setting.ts @@ -1457,7 +1457,7 @@ class Setting extends BaseModel { } public static isSet(key: string) { - return key in this.cache_; + return this.cache_.find(d => d.key === key); } static keyDescription(key: string, appType: AppType = null) {