Skip to content
This repository was archived by the owner on Jul 30, 2025. It is now read-only.

Commit 52b3aaa

Browse files
committed
fix(packages/core): mimic-dom should mimic sessionStorage
Fixes #2981
1 parent dc754c4 commit 52b3aaa

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

packages/core/src/@types/mimic-dom.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ interface SimpleLocalStorage {
99
interface SimpleWindow {
1010
addEventListener?: () => void
1111
localStorage?: SimpleLocalStorage
12+
sessionStorage?: SimpleLocalStorage
1213
}
1314

1415
interface SimpleDocument {
@@ -23,6 +24,7 @@ declare module NodeJS {
2324
interface Global {
2425
window: SimpleWindow
2526
localStorage: SimpleLocalStorage
27+
sessionStorage: SimpleLocalStorage
2628
document: SimpleDocument
2729
}
2830
}

packages/core/src/util/mimic-dom.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,20 +173,30 @@ export default function() {
173173
global.window = {}
174174
try {
175175
global.localStorage = Store()
176+
global.sessionStorage = Store()
176177
debug('successfully initialized persistent localStorage')
177178
} catch (err) {
178179
debug('error initializing persistent localStorage', err)
179180

180181
const _localStorage: Record<string, string> = {}
182+
const _sessionStorage: Record<string, string> = {}
181183
global.localStorage = {
182184
setItem: (k: string, v: string) => {
183185
_localStorage[k] = v
184186
return v
185187
},
186188
getItem: (k: string) => _localStorage[k] || null
187189
}
190+
global.sessionStorage = {
191+
setItem: (k: string, v: string) => {
192+
_sessionStorage[k] = v
193+
return v
194+
},
195+
getItem: (k: string) => _sessionStorage[k] || null
196+
}
188197
} finally {
189198
global.window.localStorage = localStorage
199+
global.window.sessionStorage = sessionStorage
190200
}
191201

192202
window.addEventListener = () => true

0 commit comments

Comments
 (0)