release: WRNexusJS 0.5.10
This commit is contained in:
@@ -5,6 +5,7 @@ import {
|
||||
getDb,
|
||||
hasDb,
|
||||
registerDb,
|
||||
registerLazyDb,
|
||||
databaseNames,
|
||||
closeDatabases,
|
||||
} from "../src/index.ts";
|
||||
@@ -45,3 +46,35 @@ test("getDb throws a helpful error for an unknown named database", async () => {
|
||||
expect(() => getDb("nope")).toThrow(/No database named 'nope'/);
|
||||
await closeDatabases();
|
||||
});
|
||||
|
||||
test("named databases can be registered without opening a connection", async () => {
|
||||
await closeDatabases();
|
||||
let calls = 0;
|
||||
const analytics = createDb(sqlite(":memory:"));
|
||||
|
||||
registerLazyDb("analytics", () => {
|
||||
calls++;
|
||||
return analytics;
|
||||
});
|
||||
|
||||
expect(hasDb("analytics")).toBe(true);
|
||||
expect(databaseNames()).toEqual(["analytics"]);
|
||||
expect(calls).toBe(0);
|
||||
expect(getDb("analytics")).toBe(analytics);
|
||||
expect(getDb("analytics")).toBe(analytics);
|
||||
expect(calls).toBe(1);
|
||||
|
||||
await closeDatabases();
|
||||
});
|
||||
|
||||
test("closing the registry does not instantiate unused lazy databases", async () => {
|
||||
await closeDatabases();
|
||||
let calls = 0;
|
||||
registerLazyDb("unused", () => {
|
||||
calls++;
|
||||
return createDb(sqlite(":memory:"));
|
||||
});
|
||||
|
||||
await closeDatabases();
|
||||
expect(calls).toBe(0);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user