@@ -13,13 +13,24 @@ describe('session-resume', function () {
1313
1414 describe ( 'restoreResumableFields' , function ( ) {
1515 it ( 'restores fields values from session storage' , function ( ) {
16+ sessionStorage . setItem ( 'session-resume:test-persist' , JSON . stringify ( [ [ 'my-first-field' , 'test2' ] ] ) )
17+ restoreResumableFields ( 'test-persist' )
18+
19+ assert . equal ( document . querySelector ( '#my-first-field' ) . value , 'test2' )
20+ assert . equal ( document . querySelector ( '#my-second-field' ) . value , 'second-field-value' )
21+ } )
22+
23+ it ( 'leaves unrestored values in session storage' , function ( ) {
1624 sessionStorage . setItem (
1725 'session-resume:test-persist' ,
1826 JSON . stringify ( [
1927 [ 'my-first-field' , 'test2' ] ,
2028 [ 'non-existant-field' , 'test3' ]
2129 ] )
2230 )
31+ document . querySelector ( '#my-first-field' ) . value = 'first-field-value'
32+ document . querySelector ( '#my-second-field' ) . value = 'second-field-value'
33+
2334 restoreResumableFields ( 'test-persist' )
2435
2536 assert . equal ( document . querySelector ( '#my-first-field' ) . value , 'test2' )
@@ -67,13 +78,18 @@ describe('session-resume', function () {
6778
6879 describe ( 'persistResumableFields' , function ( ) {
6980 it ( 'persist fields values to session storage' , function ( ) {
70- sessionStorage . setItem (
71- 'session-resume:test-persist' ,
72- JSON . stringify ( [
73- [ 'my-first-field' , 'old data' ] ,
74- [ 'non-existant-field' , 'test3' ]
75- ] )
76- )
81+ document . querySelector ( '#my-first-field' ) . value = 'test1'
82+ document . querySelector ( '#my-second-field' ) . value = 'test2'
83+ persistResumableFields ( 'test-persist' )
84+
85+ assert . deepEqual ( JSON . parse ( sessionStorage . getItem ( 'session-resume:test-persist' ) ) , [
86+ [ 'my-first-field' , 'test1' ] ,
87+ [ 'my-second-field' , 'test2' ]
88+ ] )
89+ } )
90+
91+ it ( 'holds onto existing values in the store' , function ( ) {
92+ sessionStorage . setItem ( 'session-resume:test-persist' , JSON . stringify ( [ [ 'non-existant-field' , 'test3' ] ] ) )
7793 document . querySelector ( '#my-first-field' ) . value = 'test1'
7894 document . querySelector ( '#my-second-field' ) . value = 'test2'
7995
@@ -85,5 +101,18 @@ describe('session-resume', function () {
85101 [ 'non-existant-field' , 'test3' ]
86102 ] )
87103 } )
104+
105+ it ( 'replaces old values with the latest field values' , function ( ) {
106+ sessionStorage . setItem ( 'session-resume:test-persist' , JSON . stringify ( [ [ 'my-first-field' , 'old data' ] ] ) )
107+ document . querySelector ( '#my-first-field' ) . value = 'test1'
108+ document . querySelector ( '#my-second-field' ) . value = 'test2'
109+
110+ persistResumableFields ( 'test-persist' )
111+
112+ assert . deepEqual ( JSON . parse ( sessionStorage . getItem ( 'session-resume:test-persist' ) ) , [
113+ [ 'my-first-field' , 'test1' ] ,
114+ [ 'my-second-field' , 'test2' ]
115+ ] )
116+ } )
88117 } )
89118} )
0 commit comments