@@ -20,9 +20,10 @@ import Constants from '../../src/Constants'
2020import LeanplumInternal from '../../src/LeanplumInternal'
2121import { APP_ID , KEY_DEV } from '../data/constants'
2222import { windowMock } from '../mocks/external'
23- import { lpRequestMock , mockNextResponse , pushManagerMock , varCacheMock } from '../mocks/internal'
23+ import { lpRequestMock , lpSocketMock , mockNextResponse , pushManagerMock , varCacheMock } from '../mocks/internal'
2424
2525jest . mock ( '../../src/LeanplumRequest' , ( ) => jest . fn ( ) . mockImplementation ( ( ) => lpRequestMock ) )
26+ jest . mock ( '../../src/LeanplumSocket' , ( ) => jest . fn ( ) . mockImplementation ( ( ) => lpSocketMock ) )
2627jest . mock ( '../../src/PushManager' , ( ) => jest . fn ( ) . mockImplementation ( ( ) => pushManagerMock ) )
2728jest . mock ( '../../src/VarCache' , ( ) => jest . fn ( ) . mockImplementation ( ( ) => varCacheMock ) )
2829
@@ -77,12 +78,30 @@ describe(LeanplumInternal, () => {
7778 expect ( method ) . toEqual ( 'getNewsfeedMessages' )
7879 } )
7980
81+ it ( 'works in DEV mode' , ( ) => {
82+ lp . setAppIdForDevelopmentMode ( APP_ID , KEY_DEV )
83+ mockNextResponse ( { response : [ { success : true } ] } )
84+
85+ lp . start ( )
86+
87+ expect ( lpSocketMock . connect ) . toHaveBeenCalledTimes ( 1 )
88+
89+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
90+ const [ cahe , auth , createRequest , getLastResponse ] = lpSocketMock . connect . mock . calls [ 0 ]
91+
92+ createRequest ( expect . any ( String ) , expect . any ( Object ) , expect . any ( Object ) )
93+ getLastResponse ( { response : [ ] } )
94+
95+ expect ( lpRequestMock . request ) . toHaveBeenCalledTimes ( 2 )
96+ expect ( lpRequestMock . getLastResponse ) . toHaveBeenCalledTimes ( 2 )
97+ } )
98+
8099 describe ( 'useSessionLength' , ( ) => {
81100 it ( 'starts a new session if there is no stored session' , ( ) => {
82101 jest . spyOn ( Date , 'now' ) . mockImplementation ( ( ) => 0 )
83102
84103 lp . useSessionLength ( 2 )
85- mockNextResponse ( { response : [ { success : true } ] , } )
104+ mockNextResponse ( { response : [ { success : true } ] } )
86105 lp . start ( )
87106
88107 expect ( lpRequestMock . request ) . toHaveBeenCalledTimes ( 1 )
@@ -93,7 +112,7 @@ describe(LeanplumInternal, () => {
93112 jest . spyOn ( Date , 'now' ) . mockImplementation ( ( ) => currentTime )
94113 lp . useSessionLength ( 2 )
95114
96- mockNextResponse ( { response : [ { success : true } ] , } )
115+ mockNextResponse ( { response : [ { success : true } ] } )
97116 lp . start ( )
98117 currentTime = 1000
99118 lp . start ( )
@@ -107,16 +126,35 @@ describe(LeanplumInternal, () => {
107126
108127 lp . useSessionLength ( 2 )
109128
110- mockNextResponse ( { response : [ { success : true } ] , } )
129+ mockNextResponse ( { response : [ { success : true } ] } )
111130 lp . start ( )
112131 currentTime = 2001
113- mockNextResponse ( { response : [ { success : true } ] , } )
132+ mockNextResponse ( { response : [ { success : true } ] } )
114133 lp . start ( )
115134
116135 expect ( lpRequestMock . request ) . toHaveBeenCalledTimes ( 2 )
117136 } )
118137 } )
138+ } )
139+
140+ describe ( 'startFromCache' , ( ) => {
141+ it ( 'works in DEV mode' , ( ) => {
142+ lp . setAppIdForDevelopmentMode ( APP_ID , KEY_DEV )
143+ mockNextResponse ( { response : [ { success : true } ] } )
144+
145+ lp . start ( )
146+
147+ expect ( lpSocketMock . connect ) . toHaveBeenCalledTimes ( 1 )
148+
149+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
150+ const [ cahe , auth , createRequest , getLastResponse ] = lpSocketMock . connect . mock . calls [ 0 ]
119151
152+ createRequest ( expect . any ( String ) , expect . any ( Object ) , expect . any ( Object ) )
153+ getLastResponse ( { response : [ ] } )
154+
155+ expect ( lpRequestMock . request ) . toHaveBeenCalledTimes ( 2 )
156+ expect ( lpRequestMock . getLastResponse ) . toHaveBeenCalledTimes ( 2 )
157+ } )
120158 } )
121159
122160 describe ( 'track' , ( ) => {
@@ -396,7 +434,7 @@ describe(LeanplumInternal, () => {
396434
397435 lp . setWebPushOptions ( { serviceWorkerUrl, scope } )
398436
399- const result = await lp . registerForWebPush ( )
437+ await lp . registerForWebPush ( )
400438
401439 const registerCall = pushManagerMock . register . mock . calls [ 0 ]
402440 expect ( registerCall [ 0 ] ) . toEqual ( serviceWorkerUrl )
0 commit comments