test: use safe storage helpers in app mount hooks

This commit is contained in:
Peter Steinberger
2026-03-28 13:23:39 +00:00
parent 90e82fabb3
commit 5302aa8947
2 changed files with 17 additions and 7 deletions

View File

@@ -6,8 +6,8 @@ function isStorage(value: unknown): value is Storage {
);
}
export function getSafeLocalStorage(): Storage | null {
const descriptor = Object.getOwnPropertyDescriptor(globalThis, "localStorage");
function getSafeStorage(name: "localStorage" | "sessionStorage"): Storage | null {
const descriptor = Object.getOwnPropertyDescriptor(globalThis, name);
if (typeof process !== "undefined" && process.env?.VITEST) {
return descriptor && !descriptor.get && isStorage(descriptor.value) ? descriptor.value : null;
@@ -15,7 +15,8 @@ export function getSafeLocalStorage(): Storage | null {
if (typeof window !== "undefined" && typeof document !== "undefined") {
try {
return isStorage(window.localStorage) ? window.localStorage : null;
const storage = window[name];
return isStorage(storage) ? storage : null;
} catch {
return null;
}
@@ -23,3 +24,11 @@ export function getSafeLocalStorage(): Storage | null {
return descriptor && !descriptor.get && isStorage(descriptor.value) ? descriptor.value : null;
}
export function getSafeLocalStorage(): Storage | null {
return getSafeStorage("localStorage");
}
export function getSafeSessionStorage(): Storage | null {
return getSafeStorage("sessionStorage");
}