Fix addon settings reset live reload
This commit is contained in:
2 files changed
+12
-1
No files matched your search
@@ -320,7 +320,8 @@ class SettingsStore extends EventTargetShim {
|
||||
const manifest = this.getAddonManifest(addonId);
|
||||
const dynamicEnable = !!manifest.dynamicEnable && !oldSettings.enabled && newSettings.enabled;
|
||||
const dynamicDisable = !!manifest.dynamicDisable && oldSettings.enabled && !newSettings.enabled;
|
||||
Object.assign(oldSettings, newSettings);
|
||||
// Clone to avoid pass-by-reference issues
|
||||
this.store[addonId] = JSON.parse(JSON.stringify(newSettings));
|
||||
this.dispatchEvent(new CustomEvent('addon-changed', {
|
||||
detail: {
|
||||
addonId,
|
||||
|
||||
@@ -429,3 +429,13 @@ test('setStore weird values', () => {
|
||||
});
|
||||
expect(settingsStore.getAddonEnabled('pause')).toBe(false);
|
||||
});
|
||||
|
||||
test('resetting an addon through setStore', () => {
|
||||
const store = new SettingStore();
|
||||
expect(store.getAddonSetting('custom-block-shape', 'paddingSize')).toBe(100);
|
||||
store.setAddonSetting('custom-block-shape', 'paddingSize', 50);
|
||||
expect(store.getAddonSetting('custom-block-shape', 'paddingSize')).toBe(50);
|
||||
const store2 = new SettingStore();
|
||||
store.setStore(store2.store);
|
||||
expect(store.getAddonSetting('custom-block-shape', 'paddingSize')).toBe(100);
|
||||
});
|
||||
Reference in new issue
Block a user