diff options
author | Florian Dold <florian@dold.me> | 2021-02-22 14:27:54 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-02-22 14:27:54 +0100 |
commit | 3eced74a88de43ab9afe542fcce20a8db8e3fe60 (patch) | |
tree | 8ef74cfd5cf3bea8fe90cd20746e4fadb0afc349 /packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts | |
parent | e6946694f2e7ae6ff25f490fa76f3da583c44c74 (diff) | |
download | wallet-core-3eced74a88de43ab9afe542fcce20a8db8e3fe60.tar.xz |
more tests, fix event ordering issue
Diffstat (limited to 'packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts')
-rw-r--r-- | packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts b/packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts new file mode 100644 index 000000000..8e0b43877 --- /dev/null +++ b/packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts @@ -0,0 +1,49 @@ +import test from "ava"; +import { createdb } from "./wptsupport"; + +// IDBTransaction - complete event +test("WPT idbtransaction-oncomplete.htm", async (t) => { + await new Promise<void>((resolve, reject) => { + var db: any; + var store: any; + let open_rq = createdb(t); + let stages: any[] = []; + + open_rq.onupgradeneeded = function (e: any) { + stages.push("upgradeneeded"); + + db = e.target.result; + store = db.createObjectStore("store"); + + e.target.transaction.oncomplete = function () { + stages.push("complete"); + }; + }; + + open_rq.onsuccess = function (e) { + stages.push("success"); + + // Making a totally new transaction to check + db + .transaction("store") + .objectStore("store") + .count().onsuccess = function (e: any) { + t.deepEqual(stages, ["upgradeneeded", "complete", "success"]); + resolve(); + }; + // XXX: Make one with real transactions, not only open() versionchange one + + /*db.transaction.objectStore('store').openCursor().onsuccess = function(e) { + stages.push("opencursor1"); + } + store.openCursor().onsuccess = function(e) { + stages.push("opencursor2"); + } + e.target.transaction.objectStore('store').openCursor().onsuccess = function(e) { + stages.push("opencursor3"); + } + */ + }; + }); + t.pass(); +}); |