aboutsummaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts
blob: 68d58a1626c5d4ef19a8ffe9805608f4d9961982 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import test from "ava";
import { createdb, idbFactory } from "./wptsupport";

// IDBFactory.open() - request has no source
test("WPT idbfactory-open.htm", async (t) => {
  await new Promise<void>((resolve, reject) => {
    var open_rq = createdb(t, undefined, 9);

    open_rq.onupgradeneeded = function (e) {};
    open_rq.onsuccess = function (e: any) {
      t.deepEqual(e.target.source, null, "source");
      resolve();
    };
  });
  t.pass();
});

// IDBFactory.open() - database 'name' and 'version' are correctly set
test("WPT idbfactory-open2.htm", async (t) => {
  await new Promise<void>((resolve, reject) => {
    var database_name = __filename + "-database_name";
    var open_rq = createdb(t, database_name, 13);

    open_rq.onupgradeneeded = function (e) {};
    open_rq.onsuccess = function (e: any) {
      var db = e.target.result;
      t.deepEqual(db.name, database_name, "db.name");
      t.deepEqual(db.version, 13, "db.version");
      resolve;
    };
  });
  t.pass();
});

// IDBFactory.open() - no version opens current database
test("WPT idbfactory-open3.htm", async (t) => {
  const indexedDB = idbFactory;
  await new Promise<void>((resolve, reject) => {
    var open_rq = createdb(t, undefined, 13);
    var did_upgrade = false;

    open_rq.onupgradeneeded = function () {};
    open_rq.onsuccess = function (e: any) {
      var db = e.target.result;
      db.close();

      var open_rq2 = indexedDB.open(db.name);
      open_rq2.onsuccess = function (e: any) {
        t.deepEqual(e.target.result.version, 13, "db.version");
        e.target.result.close();
        resolve();
      };
      open_rq2.onupgradeneeded = () => t.fail("Unexpected upgradeneeded");
      open_rq2.onerror = () => t.fail("Unexpected error");
    };
  });
  t.pass();
});


// IDBFactory.open() - new database has default version
test("WPT idbfactory-open4.htm", async (t) => {
  const indexedDB = idbFactory;
  await new Promise<void>((resolve, reject) => {
    var open_rq = createdb(t, __filename + '-database_name');

    open_rq.onupgradeneeded = function(e: any) {
        t.deepEqual(e.target.result.version, 1, "db.version");
    };
    open_rq.onsuccess = function(e: any) {
        t.deepEqual(e.target.result.version, 1, "db.version");
        resolve();
    };
  });
  t.pass();
});