wallet-core/packages/idb-bridge/src/idb-wpt-ported/close-in-upgradeneeded.test.ts

45 lines
1.1 KiB
TypeScript

import test from "ava";
import { createdb } from "./wptsupport.js";
// When db.close is called in upgradeneeded, the db is cleaned up on refresh
test("WPT test close-in-upgradeneeded.htm", (t) => {
return new Promise((resolve, reject) => {
var db: any;
var open_rq = createdb(t);
var sawTransactionComplete = false;
open_rq.onupgradeneeded = function (e: any) {
db = e.target.result;
t.deepEqual(db.version, 1);
db.createObjectStore("os");
db.close();
e.target.transaction.oncomplete = function () {
sawTransactionComplete = true;
};
};
open_rq.onerror = function (e: any) {
t.true(sawTransactionComplete, "saw transaction.complete");
t.deepEqual(e.target.error.name, "AbortError");
t.deepEqual(e.result, undefined);
t.true(!!db);
t.deepEqual(db.version, 1);
t.deepEqual(db.objectStoreNames.length, 1);
t.throws(
() => {
db.transaction("os");
},
{
name: "InvalidStateError",
},
);
resolve();
};
});
});