Skip to content

Commit e20df57

Browse files
committed
fix: inbox throws if session is not available
1 parent a6ffe6d commit e20df57

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/LeanplumInbox.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,11 @@ export default class LeanplumInbox implements Inbox {
9898
Constants.DEFAULT_KEYS.INBOX_MESSAGES,
9999
'session'
100100
)
101-
this.messageMap = JSON.parse(state) || {}
101+
try {
102+
this.messageMap = JSON.parse(state) || {}
103+
} catch (e) {
104+
this.messageMap = {}
105+
}
102106
}
103107

104108
public count(): number {

test/specs/LeanplumInbox.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,14 @@ describe(LeanplumInbox, () => {
437437

438438
expect(inbox.allMessages().length).toEqual(1)
439439
})
440+
441+
it('does not expect messages in session', () => {
442+
sessionStorage.setItem('__leanplum_inbox_messages', '')
443+
444+
inbox = new LeanplumInbox(createRequestSpy, onActionSpy)
445+
446+
expect(inbox.allMessages().length).toEqual(0)
447+
})
440448
})
441449

442450
function mockMessages(newsfeedMessages: any): void {

0 commit comments

Comments
 (0)