diff options
Diffstat (limited to 'packages/idb-bridge/src/testingdb.ts')
-rw-r--r-- | packages/idb-bridge/src/testingdb.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/testingdb.ts b/packages/idb-bridge/src/testingdb.ts new file mode 100644 index 000000000..c6abffa0f --- /dev/null +++ b/packages/idb-bridge/src/testingdb.ts @@ -0,0 +1,43 @@ +/* + Copyright 2023 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + */ + +import { createSqliteBackend } from "./SqliteBackend.js"; +import { BridgeIDBFactory } from "./bridge-idb.js"; +import { IDBFactory } from "./idbtypes.js"; +import { createNodeSqlite3Impl } from "./node-sqlite3-impl.js"; + +let idbFactory: IDBFactory | undefined = undefined; + +export async function initTestIndexedDB(): Promise<void> { + // const backend = new MemoryBackend(); + // backend.enableTracing = true; + + const sqlite3Impl = await createNodeSqlite3Impl(); + + const backend = await createSqliteBackend(sqlite3Impl, { + filename: ":memory:", + }); + + idbFactory = new BridgeIDBFactory(backend); + backend.enableTracing = true; + BridgeIDBFactory.enableTracing = false; +} + +export function useTestIndexedDb(): IDBFactory { + if (!idbFactory) { + throw Error("indexeddb factory not initialized"); + } + return idbFactory; +} |