@@ -9,8 +9,8 @@ describe('Persistence store', () => {
99 beforeEach ( ( ) => {
1010 mockMPInstance = {
1111 _Helpers : {
12- createMainStorageName : ( ) => 'mprtcl-v4_ws ' ,
13- createProductStorageName : ( ) => 'mprtcl-prodv4_ws ' ,
12+ createMainStorageName : ( ) => 'mprtcl-v4 ' ,
13+ createProductStorageName : ( ) => 'mprtcl-prodv4 ' ,
1414 Validators : { isFunction : ( ) => true } ,
1515 extend : Object . assign ,
1616 } ,
@@ -19,8 +19,13 @@ describe('Persistence store', () => {
1919 } ,
2020 _Persistence : {
2121 setCookie : jest . fn ( ) ,
22- setLocalStorage : jest . fn ( ) ,
23- setProductStorage : jest . fn ( ) ,
22+ setLocalStorage : jest . fn ( ( ) => {
23+ mockMPInstance . _Persistence . setProductStorage ( ) ;
24+ window . localStorage . setItem ( 'mprtcl-v4' , 'local-storage' ) ;
25+ } ) ,
26+ setProductStorage : jest . fn ( ( ) => {
27+ window . localStorage . setItem ( encodeURIComponent ( 'mprtcl-prodv4' ) , 'product-storage' ) ;
28+ } ) ,
2429 update : function ( ) {
2530 if ( store . webviewBridgeEnabled ) {
2631 return ;
@@ -47,6 +52,8 @@ describe('Persistence store', () => {
4752
4853 store = { } as IStore ;
4954 Store . call ( store , { } as SDKInitConfig , mockMPInstance , 'apikey' ) ;
55+ window . localStorage . removeItem ( 'mprtcl-v4' ) ;
56+ window . localStorage . removeItem ( encodeURIComponent ( 'mprtcl-prodv4' ) ) ;
5057 } ) ;
5158
5259 describe ( '#noFunctional privacy flag' , ( ) => {
@@ -56,26 +63,28 @@ describe('Persistence store', () => {
5663 store . webviewBridgeEnabled = false ;
5764 } ) ;
5865
59- it ( 'should NOT write to cookie when useCookieStorage is true' , ( ) => {
66+ it ( 'should NOT write to cookie and localStorage when useCookieStorage is true' , ( ) => {
6067 store . SDKConfig . useCookieStorage = true ;
61- jest . clearAllMocks ( ) ;
6268
6369 mockMPInstance . _Persistence . update ( ) ;
6470
6571 expect ( mockMPInstance . _Persistence . setCookie ) . not . toHaveBeenCalled ( ) ;
6672 expect ( mockMPInstance . _Persistence . setLocalStorage ) . not . toHaveBeenCalled ( ) ;
6773 expect ( mockMPInstance . _Persistence . setProductStorage ) . toHaveBeenCalled ( ) ;
74+ expect ( window . localStorage . getItem ( 'mprtcl-v4' ) ) . toBeNull ( ) ;
75+ expect ( window . localStorage . getItem ( encodeURIComponent ( 'mprtcl-prodv4' ) ) ) . not . toBeNull ( ) ;
6876 } ) ;
6977
7078 it ( 'should NOT write to localStorage when useCookieStorage is false' , ( ) => {
7179 store . SDKConfig . useCookieStorage = false ;
72- jest . clearAllMocks ( ) ;
7380
7481 mockMPInstance . _Persistence . update ( ) ;
7582
7683 expect ( mockMPInstance . _Persistence . setCookie ) . not . toHaveBeenCalled ( ) ;
7784 expect ( mockMPInstance . _Persistence . setLocalStorage ) . not . toHaveBeenCalled ( ) ;
7885 expect ( mockMPInstance . _Persistence . setProductStorage ) . toHaveBeenCalled ( ) ;
86+ expect ( window . localStorage . getItem ( 'mprtcl-v4' ) ) . toBeNull ( ) ;
87+ expect ( window . localStorage . getItem ( encodeURIComponent ( 'mprtcl-prodv4' ) ) ) . not . toBeNull ( ) ;
7988 } ) ;
8089 } ) ;
8190
@@ -85,26 +94,28 @@ describe('Persistence store', () => {
8594 store . webviewBridgeEnabled = false ;
8695 } ) ;
8796
88- it ( 'should write to cookie when useCookieStorage is true' , ( ) => {
97+ it ( 'should write to cookie and localStorage when useCookieStorage is true' , ( ) => {
8998 store . SDKConfig . useCookieStorage = true ;
90- jest . clearAllMocks ( ) ;
9199
92100 mockMPInstance . _Persistence . update ( ) ;
93101
94102 expect ( mockMPInstance . _Persistence . setCookie ) . toHaveBeenCalled ( ) ;
95103 expect ( mockMPInstance . _Persistence . setLocalStorage ) . toHaveBeenCalled ( ) ;
96- expect ( mockMPInstance . _Persistence . setProductStorage ) . not . toHaveBeenCalled ( ) ;
104+ expect ( mockMPInstance . _Persistence . setProductStorage ) . toHaveBeenCalled ( ) ;
105+ expect ( window . localStorage . getItem ( 'mprtcl-v4' ) ) . not . toBeNull ( ) ;
106+ expect ( window . localStorage . getItem ( encodeURIComponent ( 'mprtcl-prodv4' ) ) ) . not . toBeNull ( ) ;
97107 } ) ;
98108
99109 it ( 'should write to localStorage when useCookieStorage is false' , ( ) => {
100110 store . SDKConfig . useCookieStorage = false ;
101- jest . clearAllMocks ( ) ;
102111
103112 mockMPInstance . _Persistence . update ( ) ;
104113
105114 expect ( mockMPInstance . _Persistence . setCookie ) . not . toHaveBeenCalled ( ) ;
106115 expect ( mockMPInstance . _Persistence . setLocalStorage ) . toHaveBeenCalled ( ) ;
107- expect ( mockMPInstance . _Persistence . setProductStorage ) . not . toHaveBeenCalled ( ) ;
116+ expect ( mockMPInstance . _Persistence . setProductStorage ) . toHaveBeenCalled ( ) ;
117+ expect ( window . localStorage . getItem ( 'mprtcl-v4' ) ) . not . toBeNull ( ) ;
118+ expect ( window . localStorage . getItem ( encodeURIComponent ( 'mprtcl-prodv4' ) ) ) . not . toBeNull ( ) ;
108119 } ) ;
109120 } ) ;
110121
@@ -114,42 +125,45 @@ describe('Persistence store', () => {
114125 store . webviewBridgeEnabled = false ;
115126 } ) ;
116127
117- it ( 'should write to cookie by default when useCookieStorage is true' , ( ) => {
128+ it ( 'should write to cookie and localStorage by default when useCookieStorage is true' , ( ) => {
118129 store . SDKConfig . useCookieStorage = true ;
119- jest . clearAllMocks ( ) ;
120130
121131 mockMPInstance . _Persistence . update ( ) ;
122132
123133 expect ( store . getNoFunctional ( ) ) . toBe ( false ) ;
124134 expect ( mockMPInstance . _Persistence . setCookie ) . toHaveBeenCalled ( ) ;
125135 expect ( mockMPInstance . _Persistence . setLocalStorage ) . toHaveBeenCalled ( ) ;
126- expect ( mockMPInstance . _Persistence . setProductStorage ) . not . toHaveBeenCalled ( ) ;
136+ expect ( mockMPInstance . _Persistence . setProductStorage ) . toHaveBeenCalled ( ) ;
137+ expect ( window . localStorage . getItem ( 'mprtcl-v4' ) ) . not . toBeNull ( ) ;
138+ expect ( window . localStorage . getItem ( encodeURIComponent ( 'mprtcl-prodv4' ) ) ) . not . toBeNull ( ) ;
127139 } ) ;
128140
129141 it ( 'should write to localStorage by default when useCookieStorage is false' , ( ) => {
130142 store . SDKConfig . useCookieStorage = false ;
131- jest . clearAllMocks ( ) ;
132143
133144 mockMPInstance . _Persistence . update ( ) ;
134145
135146 expect ( store . getNoFunctional ( ) ) . toBe ( false ) ;
136147 expect ( mockMPInstance . _Persistence . setCookie ) . not . toHaveBeenCalled ( ) ;
137148 expect ( mockMPInstance . _Persistence . setLocalStorage ) . toHaveBeenCalled ( ) ;
138- expect ( mockMPInstance . _Persistence . setProductStorage ) . not . toHaveBeenCalled ( ) ;
149+ expect ( mockMPInstance . _Persistence . setProductStorage ) . toHaveBeenCalled ( ) ;
150+ expect ( window . localStorage . getItem ( 'mprtcl-v4' ) ) . not . toBeNull ( ) ;
151+ expect ( window . localStorage . getItem ( encodeURIComponent ( 'mprtcl-prodv4' ) ) ) . not . toBeNull ( ) ;
139152 } ) ;
140153 } ) ;
141154
142155 it ( 'should NOT write to storage when webviewBridgeEnabled is true' , ( ) => {
143156 store . setNoFunctional ( false ) ;
144157 store . webviewBridgeEnabled = true ;
145158 store . SDKConfig . useCookieStorage = true ;
146- jest . clearAllMocks ( ) ;
147159
148160 mockMPInstance . _Persistence . update ( ) ;
149161
150162 expect ( mockMPInstance . _Persistence . setCookie ) . not . toHaveBeenCalled ( ) ;
151163 expect ( mockMPInstance . _Persistence . setLocalStorage ) . not . toHaveBeenCalled ( ) ;
152164 expect ( mockMPInstance . _Persistence . setProductStorage ) . not . toHaveBeenCalled ( ) ;
165+ expect ( window . localStorage . getItem ( 'mprtcl-v4' ) ) . toBeNull ( ) ;
166+ expect ( window . localStorage . getItem ( encodeURIComponent ( 'mprtcl-prodv4' ) ) ) . toBeNull ( ) ;
153167 } ) ;
154168 } ) ;
155169} ) ;
0 commit comments