import { afterEach, beforeEach, describe, expect, test } from "vitest";
import { databaseLockAdapterTestSuite } from "@daiso-tech/core/lock/test-utilities";
import { kyselyLockAdapter, type KyselyLockTables } from "@daiso-tech/core/lock/kysely-lock-adapter";
import { Kysely, SqliteDialect } from "kysely";
import Sqlite, { type Database } from "better-sqlite3";
describe("class: kyselyLockAdapter", () => {
let database: Database;
let kysely: Kysely<KyselyLockTables>;
beforeEach(() => {
database = new Sqlite(":memory:");
kysely = new Kysely({
dialect: new SqliteDialect({
database,
}),
});
});
afterEach(() => {
database.close();
});
databaseLockAdapterTestSuite({
createAdapter: async () => {
const lockAdapter = new kyselyLockAdapter({
kysely,
shouldRemoveExpiredKeys: false,
});
await lockAdapter.init();
return lockAdapter;
},
test,
beforeEach,
expect,
describe,
});
});
The
databaseLockAdapterTestSuite
function simplifies the process of testing your custom implementation ofIDatabaseLockAdapter
withvitest
.IMPORT_PATH:
"@daiso-tech/core/lock/test-utilities"