53 lines
2.0 KiB
TypeScript
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);
|
|
}
|
|
);
|