@@ -14,14 +14,32 @@ describe('session-resume', function () {
1414 } )
1515
1616 describe ( 'restoreResumableFields' , function ( ) {
17- it ( 'restores fields values from session storage' , function ( ) {
17+ it ( 'restores fields values from session storage by default ' , function ( ) {
1818 sessionStorage . setItem ( 'session-resume:test-persist' , JSON . stringify ( [ [ 'my-first-field' , 'test2' ] ] ) )
1919 restoreResumableFields ( 'test-persist' )
2020
2121 assert . equal ( document . querySelector ( '#my-first-field' ) . value , 'test2' )
2222 assert . equal ( document . querySelector ( '#my-second-field' ) . value , 'second-field-value' )
2323 } )
2424
25+ it ( 'uses a Storage object when provided as an option' , function ( ) {
26+ const fakeStorageBackend = { }
27+ const fakeStorage = {
28+ setItem ( key , value ) {
29+ fakeStorageBackend [ key ] = JSON . stringify ( value )
30+ } ,
31+ getItem ( key ) {
32+ return JSON . parse ( fakeStorageBackend [ key ] || null )
33+ }
34+ }
35+
36+ fakeStorage . setItem ( 'session-resume:test-persist' , JSON . stringify ( [ [ 'my-first-field' , 'test2' ] ] ) )
37+ restoreResumableFields ( 'test-persist' , { storage : fakeStorage } )
38+
39+ assert . equal ( document . querySelector ( '#my-first-field' ) . value , 'test2' )
40+ assert . equal ( document . querySelector ( '#my-second-field' ) . value , 'second-field-value' )
41+ } )
42+
2543 it ( 'leaves unrestored values in session storage' , function ( ) {
2644 sessionStorage . setItem (
2745 'session-resume:test-persist' ,
@@ -79,7 +97,7 @@ describe('session-resume', function () {
7997 } )
8098
8199 describe ( 'persistResumableFields' , function ( ) {
82- it ( 'persist fields values to session storage' , function ( ) {
100+ it ( 'persist fields values to session storage by default ' , function ( ) {
83101 document . querySelector ( '#my-first-field' ) . value = 'test1'
84102 document . querySelector ( '#my-second-field' ) . value = 'test2'
85103 persistResumableFields ( 'test-persist' )
@@ -90,6 +108,28 @@ describe('session-resume', function () {
90108 ] )
91109 } )
92110
111+ it ( 'uses a Storage object when provided as an option' , function ( ) {
112+ document . querySelector ( '#my-first-field' ) . value = 'test1'
113+ document . querySelector ( '#my-second-field' ) . value = 'test2'
114+
115+ const fakeStorageBackend = { }
116+ const fakeStorage = {
117+ setItem ( key , value ) {
118+ fakeStorageBackend [ key ] = JSON . stringify ( value )
119+ } ,
120+ getItem ( key ) {
121+ return JSON . parse ( fakeStorageBackend [ key ] || null )
122+ }
123+ }
124+
125+ persistResumableFields ( 'test-persist' , { storage : fakeStorage } )
126+
127+ assert . deepEqual ( JSON . parse ( fakeStorage . getItem ( 'session-resume:test-persist' ) ) , [
128+ [ 'my-first-field' , 'test1' ] ,
129+ [ 'my-second-field' , 'test2' ]
130+ ] )
131+ } )
132+
93133 it ( 'holds onto existing values in the store' , function ( ) {
94134 sessionStorage . setItem ( 'session-resume:test-persist' , JSON . stringify ( [ [ 'non-existant-field' , 'test3' ] ] ) )
95135 document . querySelector ( '#my-first-field' ) . value = 'test1'
0 commit comments