import type { BackendDbInterface } from "../../../src/db/types/DbInterface.js"; import { SqliteInterface } from "../../../src/db/sqlite/SqliteInterface.js"; import { createTestDb } from "../../helpers/sqlite.js"; import { runUserTests } from "../../shared/users.js"; import { runAbodeTests } from "../../shared/abodes.js"; import { runResidentTests } from "../../shared/residents.js"; import { runApikeyTests } from "../../shared/apikeys.js"; import { runSessionTests } from "../../shared/sessions.js"; import { runAuthTests } from "../../shared/auth.js"; async function createExpiredApikey( db: BackendDbInterface, uid: string ): Promise<`at_${string}`> { const si = db as SqliteInterface; const token = (`at_${"e".repeat(32)}`) as `at_${string}`; const kid = crypto.randomUUID(); const { sql } = si._; si._.db.run(sql` INSERT INTO "apikeys"("uid", "kid", "token", "name", "permissions", "expires_at") VALUES( ${{ uuid: uid }}, ${{ uuid: kid }}, ${{ text: token }}, ${{ text: "Expired Key" }}, ${{ jsonb: {} }}, ${{ date: new Date(Date.now() - 10000).toISOString() }} ) `); return token; } runUserTests("sqlite", createTestDb); runAbodeTests("sqlite", createTestDb); runResidentTests("sqlite", createTestDb); runApikeyTests("sqlite", createTestDb); runSessionTests("sqlite", createTestDb); runAuthTests("sqlite", createTestDb, createExpiredApikey);