summaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts')
-rw-r--r--packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts61
1 files changed, 61 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts b/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts
index 102b54719..4ba7caa6f 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts
@@ -1,4 +1,6 @@
import test from "ava";
+import { BridgeIDBVersionChangeEvent } from "../bridge-idb";
+import FakeEvent from "../util/FakeEvent";
import { createdb, format_value, idbFactory } from "./wptsupport";
// IDBFactory.open() - request has no source
@@ -466,3 +468,62 @@ test("WPT idbfactory-open11.htm", async (t) => {
});
t.pass();
});
+
+// IDBFactory.open() - upgradeneeded gets VersionChangeEvent
+test("WPT idbfactory-open12.htm", async (t) => {
+ const indexedDB = idbFactory;
+
+ var db: any;
+ var open_rq = createdb(t, undefined, 9);
+
+ await new Promise<void>((resolve, reject) => {
+ open_rq.onupgradeneeded = function (e: any) {
+ db = e.target.result;
+
+ t.true(
+ e instanceof BridgeIDBVersionChangeEvent,
+ "e instanceof IDBVersionChangeEvent",
+ );
+ t.deepEqual(e.oldVersion, 0, "oldVersion");
+ t.deepEqual(e.newVersion, 9, "newVersion");
+ t.deepEqual(e.type, "upgradeneeded", "event type");
+
+ t.deepEqual(db.version, 9, "db.version");
+ };
+ open_rq.onsuccess = function (e) {
+ t.true(e instanceof FakeEvent, "e instanceof Event");
+ t.false(
+ e instanceof BridgeIDBVersionChangeEvent,
+ "e not instanceof IDBVersionChangeEvent",
+ );
+ t.deepEqual(e.type, "success", "event type");
+ resolve();
+ };
+ });
+
+ await new Promise<void>((resolve, reject) => {
+ /**
+ * Second test
+ */
+ db.onversionchange = function () {
+ db.close();
+ };
+
+ var open_rq2 = createdb(t, db.name, 10);
+ open_rq2.onupgradeneeded = function (e: any) {
+ var db2 = e.target.result;
+ t.true(
+ e instanceof BridgeIDBVersionChangeEvent,
+ "e instanceof IDBVersionChangeEvent",
+ );
+ t.deepEqual(e.oldVersion, 9, "oldVersion");
+ t.deepEqual(e.newVersion, 10, "newVersion");
+ t.deepEqual(e.type, "upgradeneeded", "event type");
+
+ t.deepEqual(db2.version, 10, "new db.version");
+
+ resolve();
+ };
+ });
+ t.pass();
+});