Files
suaveplan/packages/persistence/database/surrealdb/tests/integration/init.integration.test.ts
2026-05-27 23:47:53 +01:00

53 lines
2.0 KiB
TypeScript

import { describe, expect, it } from "@suaveplan/testing/runner";
import { connectAdapter } from "./helpers/connect.js";
import { randomNamespace } from "./helpers/random-ns.js";
import { surrealUnavailable } from "./integration-setup.js";
describe.skipIf(surrealUnavailable)(
"SurrealDB init / INSERT INTO regression (real SurrealDB v3.0.4)",
() => {
it("INSERT INTO round-trips full content (regression for create-content-drop)", async () => {
const ns = randomNamespace();
const { adapter } = await connectAdapter({
namespaceOverride: ns,
databaseOverride: ns,
});
try {
await adapter.execute("DEFINE TABLE person SCHEMAFULL");
await adapter.execute(
"DEFINE FIELD name ON person TYPE string"
);
await adapter.execute("DEFINE FIELD age ON person TYPE int");
await adapter.execute(
"INSERT INTO person { id: person:alice, name: 'Alice', age: 30 }"
);
const rows = await adapter.query<{
id: unknown;
name: string;
age: number;
}>("SELECT name, age FROM person:alice");
expect(rows).toHaveLength(1);
expect(rows[0]?.name).toBe("Alice");
expect(rows[0]?.age).toBe(30);
} finally {
await adapter.disconnect();
}
}, 30000);
it("namespace + database can be created fresh", async () => {
const ns = randomNamespace();
const { adapter } = await connectAdapter({
namespaceOverride: ns,
databaseOverride: ns,
});
try {
const info =
await adapter.query<Record<string, unknown>>("INFO FOR DB");
expect(info.length).toBeGreaterThan(0);
} finally {
await adapter.disconnect();
}
}, 30000);
}
);