mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-16 12:37:20 +00:00
108 lines
3.0 KiB
TypeScript
108 lines
3.0 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { SqliteIntrospector } from "data/connection";
|
|
import { getDummyDatabase } from "../../helper";
|
|
import { Kysely, SqliteDialect } from "kysely";
|
|
|
|
function create() {
|
|
const database = getDummyDatabase().dummyDb;
|
|
return new Kysely({
|
|
dialect: new SqliteDialect({ database }),
|
|
});
|
|
}
|
|
|
|
function createLibsql() {
|
|
const database = getDummyDatabase().dummyDb;
|
|
return new Kysely({
|
|
dialect: new SqliteDialect({ database }),
|
|
});
|
|
}
|
|
|
|
describe("SqliteIntrospector", () => {
|
|
test("asdf", async () => {
|
|
const kysely = create();
|
|
|
|
await kysely.schema
|
|
.createTable("test")
|
|
.addColumn("id", "integer", (col) => col.primaryKey().autoIncrement().notNull())
|
|
.addColumn("string", "text", (col) => col.notNull())
|
|
.addColumn("number", "integer")
|
|
.execute();
|
|
|
|
await kysely.schema
|
|
.createIndex("idx_test_string")
|
|
.on("test")
|
|
.columns(["string"])
|
|
.unique()
|
|
.execute();
|
|
|
|
await kysely.schema
|
|
.createTable("test2")
|
|
.addColumn("id", "integer", (col) => col.primaryKey().autoIncrement().notNull())
|
|
.addColumn("number", "integer")
|
|
.execute();
|
|
|
|
await kysely.schema.createIndex("idx_test2_number").on("test2").columns(["number"]).execute();
|
|
|
|
const introspector = new SqliteIntrospector(kysely, {});
|
|
|
|
const result = await introspector.getTables();
|
|
|
|
//console.log(_jsonp(result));
|
|
|
|
expect(result).toEqual([
|
|
{
|
|
name: "test",
|
|
isView: false,
|
|
columns: [
|
|
{
|
|
name: "id",
|
|
dataType: "INTEGER",
|
|
isNullable: false,
|
|
isAutoIncrementing: true,
|
|
hasDefaultValue: false,
|
|
comment: undefined,
|
|
},
|
|
{
|
|
name: "string",
|
|
dataType: "TEXT",
|
|
isNullable: false,
|
|
isAutoIncrementing: false,
|
|
hasDefaultValue: false,
|
|
comment: undefined,
|
|
},
|
|
{
|
|
comment: undefined,
|
|
dataType: "INTEGER",
|
|
hasDefaultValue: false,
|
|
isAutoIncrementing: false,
|
|
isNullable: true,
|
|
name: "number",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: "test2",
|
|
isView: false,
|
|
columns: [
|
|
{
|
|
name: "id",
|
|
dataType: "INTEGER",
|
|
isNullable: false,
|
|
isAutoIncrementing: true,
|
|
hasDefaultValue: false,
|
|
comment: undefined,
|
|
},
|
|
{
|
|
name: "number",
|
|
dataType: "INTEGER",
|
|
isNullable: true,
|
|
isAutoIncrementing: false,
|
|
hasDefaultValue: false,
|
|
comment: undefined,
|
|
},
|
|
],
|
|
},
|
|
]);
|
|
});
|
|
});
|