@entitykit/testing
v0.1.0-alpha.1
Published
Recording test doubles for EntityKit: assert the SQL and transactions a context would issue.
Maintainers
Readme
RecordingDatabaseConnection captures SQL, parameters, transactions,
savepoints, and provider sessions without starting a database.
Install
npm install -D @entitykit/core@alpha @entitykit/testing@alphaUse
import { DbContext, type DbContextOptionsBuilder } from "@entitykit/core";
import { RecordingDatabaseConnection } from "@entitykit/testing";
const connection = new RecordingDatabaseConnection();
class TestDbContext extends DbContext {
protected override configure(options: DbContextOptionsBuilder): void {
options.useConnection(connection);
}
}
connection.queueResult({ rows: [{ id: "usr_1" }], rowCount: 1 });
await using db = TestDbContext.create();
await db.database.sql`select id from users`;
expect(connection.statements).toEqual([
{ text: "select id from users", values: [] },
]);Recordings
| Property | Contains |
| --- | --- |
| statements | SQL text and bound values |
| operations | Queries, transaction work, savepoints, and sessions in order |
| transactionEvents | Begin, commit, rollback, and savepoint lifecycle |
| sessionEvents | Provider-session lifecycle |
Queue rows with queueResult() and failures with queueError(). Dedicated
helpers can fail the next transaction or savepoint operation for recovery-path
tests.
This package is a unit-test tool. Keep live provider integration coverage for behavior owned by SQLite, Postgres, or MySQL.
License
MIT
