@@ -90,15 +90,19 @@ it('should round-trip through the file', async ({ contextFactory }, testInfo) =>
9090 await new Promise ( ( resolve , reject ) => {
9191 const openRequest = indexedDB . open ( 'db' , 42 ) ;
9292 openRequest . onupgradeneeded = ( ) => {
93- openRequest . result . createObjectStore ( 'store' ) ;
94-
93+ openRequest . result . createObjectStore ( 'store' , { keyPath : 'name' } ) ;
94+ openRequest . result . createObjectStore ( 'store2' ) ;
9595 } ;
9696 openRequest . onsuccess = ( ) => {
97- const request = openRequest . result . transaction ( 'store' , 'readwrite' )
97+ const transaction = openRequest . result . transaction ( [ 'store' , 'store2' ] , 'readwrite' ) ;
98+ transaction
9899 . objectStore ( 'store' )
99- . put ( 'foo' , 'bar' ) ;
100- request . addEventListener ( 'success' , resolve ) ;
101- request . addEventListener ( 'error' , reject ) ;
100+ . put ( { name : 'foo' , date : new Date ( 0 ) } ) ;
101+ transaction
102+ . objectStore ( 'store2' )
103+ . put ( 'bar' , 'foo' ) ;
104+ transaction . addEventListener ( 'complete' , resolve ) ;
105+ transaction . addEventListener ( 'error' , reject ) ;
102106 } ;
103107 } ) ;
104108
@@ -120,18 +124,25 @@ it('should round-trip through the file', async ({ contextFactory }, testInfo) =>
120124 expect ( localStorage ) . toEqual ( { name1 : 'value1' } ) ;
121125 const cookie = await page2 . evaluate ( 'document.cookie' ) ;
122126 expect ( cookie ) . toEqual ( 'username=John Doe' ) ;
123- const idbValue = await page2 . evaluate ( ( ) => new Promise < string > ( ( resolve , reject ) => {
127+ const idbValues = await page2 . evaluate ( ( ) => new Promise ( ( resolve , reject ) => {
124128 const openRequest = indexedDB . open ( 'db' , 42 ) ;
125129 openRequest . addEventListener ( 'success' , ( ) => {
126130 const db = openRequest . result ;
127- const transaction = db . transaction ( 'store' , 'readonly' ) ;
128- const getRequest = transaction . objectStore ( 'store' ) . get ( 'bar' ) ;
129- getRequest . addEventListener ( 'success' , ( ) => resolve ( getRequest . result ) ) ;
130- getRequest . addEventListener ( 'error' , ( ) => reject ( getRequest . error ) ) ;
131+ const transaction = db . transaction ( [ 'store' , 'store2' ] , 'readonly' ) ;
132+ const request1 = transaction . objectStore ( 'store' ) . get ( 'foo' ) ;
133+ const request2 = transaction . objectStore ( 'store2' ) . get ( 'foo' ) ;
134+
135+ Promise . all ( [ request1 , request2 ] . map ( request => new Promise ( ( resolve , reject ) => {
136+ request . addEventListener ( 'success' , ( ) => resolve ( request . result ) ) ;
137+ request . addEventListener ( 'error' , ( ) => reject ( request . error ) ) ;
138+ } ) ) ) . then ( resolve , reject ) ;
131139 } ) ;
132140 openRequest . addEventListener ( 'error' , ( ) => reject ( openRequest . error ) ) ;
133141 } ) ) ;
134- expect ( idbValue ) . toEqual ( 'foo' ) ;
142+ expect ( idbValues ) . toEqual ( [
143+ { name : 'foo' , date : new Date ( 0 ) } ,
144+ 'bar'
145+ ] ) ;
135146 await context2 . close ( ) ;
136147} ) ;
137148
0 commit comments