fix: dispose persistent-store effects; close comparisonStore effect leak
Thread the new createPersistentStore.destroy() through its owners so the save effect.root is actually torn down: LayoutManager gains destroy(); ThemeManager and typographySettings dispose their #store in their existing destroy(). comparisonStore had its own leak — a constructor $effect.root whose disposer was discarded, and a module-level persistent storage created at import. Move storage into the instance (#storage, created lazily per instance), capture the effect.root disposer, add destroy(), and adopt createSingleton so reset runs resetAll() + destroy(). Re-export createSingleton from the $shared/lib barrel; give the test storage mock a destroy().
This commit is contained in:
@@ -46,6 +46,8 @@ const mockStorage = vi.hoisted(() => {
|
||||
configurable: true,
|
||||
});
|
||||
|
||||
storage.destroy = vi.fn();
|
||||
|
||||
return storage;
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user