test(storageState): IndexedDB with keyPath (#34648)
This commit is contained in:
parent
2b5493219b
commit
365f411548
|
|
@ -90,15 +90,19 @@ it('should round-trip through the file', async ({ contextFactory }, testInfo) =>
|
||||||
await new Promise((resolve, reject) => {
|
await new Promise((resolve, reject) => {
|
||||||
const openRequest = indexedDB.open('db', 42);
|
const openRequest = indexedDB.open('db', 42);
|
||||||
openRequest.onupgradeneeded = () => {
|
openRequest.onupgradeneeded = () => {
|
||||||
openRequest.result.createObjectStore('store');
|
openRequest.result.createObjectStore('store', { keyPath: 'name' });
|
||||||
|
openRequest.result.createObjectStore('store2');
|
||||||
};
|
};
|
||||||
openRequest.onsuccess = () => {
|
openRequest.onsuccess = () => {
|
||||||
const request = openRequest.result.transaction('store', 'readwrite')
|
const transaction = openRequest.result.transaction(['store', 'store2'], 'readwrite');
|
||||||
|
transaction
|
||||||
.objectStore('store')
|
.objectStore('store')
|
||||||
.put({ name: 'foo', date: new Date(0) }, 'bar');
|
.put({ name: 'foo', date: new Date(0) });
|
||||||
request.addEventListener('success', resolve);
|
transaction
|
||||||
request.addEventListener('error', reject);
|
.objectStore('store2')
|
||||||
|
.put('bar', 'foo');
|
||||||
|
transaction.addEventListener('complete', resolve);
|
||||||
|
transaction.addEventListener('error', reject);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -120,18 +124,25 @@ it('should round-trip through the file', async ({ contextFactory }, testInfo) =>
|
||||||
expect(localStorage).toEqual({ name1: 'value1' });
|
expect(localStorage).toEqual({ name1: 'value1' });
|
||||||
const cookie = await page2.evaluate('document.cookie');
|
const cookie = await page2.evaluate('document.cookie');
|
||||||
expect(cookie).toEqual('username=John Doe');
|
expect(cookie).toEqual('username=John Doe');
|
||||||
const idbValue = await page2.evaluate(() => new Promise<string>((resolve, reject) => {
|
const idbValues = await page2.evaluate(() => new Promise((resolve, reject) => {
|
||||||
const openRequest = indexedDB.open('db', 42);
|
const openRequest = indexedDB.open('db', 42);
|
||||||
openRequest.addEventListener('success', () => {
|
openRequest.addEventListener('success', () => {
|
||||||
const db = openRequest.result;
|
const db = openRequest.result;
|
||||||
const transaction = db.transaction('store', 'readonly');
|
const transaction = db.transaction(['store', 'store2'], 'readonly');
|
||||||
const getRequest = transaction.objectStore('store').get('bar');
|
const request1 = transaction.objectStore('store').get('foo');
|
||||||
getRequest.addEventListener('success', () => resolve(getRequest.result));
|
const request2 = transaction.objectStore('store2').get('foo');
|
||||||
getRequest.addEventListener('error', () => reject(getRequest.error));
|
|
||||||
|
Promise.all([request1, request2].map(request => new Promise((resolve, reject) => {
|
||||||
|
request.addEventListener('success', () => resolve(request.result));
|
||||||
|
request.addEventListener('error', () => reject(request.error));
|
||||||
|
}))).then(resolve, reject);
|
||||||
});
|
});
|
||||||
openRequest.addEventListener('error', () => reject(openRequest.error));
|
openRequest.addEventListener('error', () => reject(openRequest.error));
|
||||||
}));
|
}));
|
||||||
expect(idbValue).toEqual({ name: 'foo', date: new Date(0) });
|
expect(idbValues).toEqual([
|
||||||
|
{ name: 'foo', date: new Date(0) },
|
||||||
|
'bar'
|
||||||
|
]);
|
||||||
await context2.close();
|
await context2.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue