Fix addon settings reset live reload

This commit is contained in:
Thomas Weber committed 2021-05-24 17:32:55 -05:00
1 parent 233b1cf735
commit 4112f0f009
2 files changed
+12 -1

No files matched your search

+2 -1
View File
@@ -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,
+10
View File
@@ -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);
});