Initial Commit
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import { describe, expect, it } from "@suaveplan/testing/runner";
|
||||
import { SurrealAdapter } from "../../src/adapter/adapter/adapter.js";
|
||||
import { SURREAL_CODES } from "../../src/errors/index.js";
|
||||
import { connectAdapter } from "./helpers/connect.js";
|
||||
import { randomNamespace } from "./helpers/random-ns.js";
|
||||
import { surrealUnavailable } from "./integration-setup.js";
|
||||
|
||||
describe.skipIf(surrealUnavailable)(
|
||||
"SurrealAdapter — integration (real SurrealDB v3.0.4)",
|
||||
() => {
|
||||
it("connect → query RETURN { n: 1 } → disconnect", async () => {
|
||||
// SurrealDB v3 dropped table-less SELECT — `SELECT 1 AS n` requires
|
||||
// FROM in v3. RETURN evaluates an expression and returns it directly.
|
||||
const { adapter } = await connectAdapter();
|
||||
try {
|
||||
const rows = await adapter.query<{ n: number }>(
|
||||
"RETURN { n: 1 }"
|
||||
);
|
||||
expect(rows).toEqual([{ n: 1 }]);
|
||||
} finally {
|
||||
await adapter.disconnect();
|
||||
}
|
||||
}, 30000);
|
||||
|
||||
it("parameterised query round-trips values (regression for content-drop class)", async () => {
|
||||
const { adapter } = await connectAdapter();
|
||||
try {
|
||||
const rows = await adapter.query<{ v: string }>(
|
||||
"RETURN { v: $p0 }",
|
||||
["abc"]
|
||||
);
|
||||
expect(rows).toEqual([{ v: "abc" }]);
|
||||
} finally {
|
||||
await adapter.disconnect();
|
||||
}
|
||||
}, 30000);
|
||||
|
||||
it("DDL persists across queries on the live engine", async () => {
|
||||
const ns = randomNamespace();
|
||||
const { adapter } = await connectAdapter({
|
||||
namespaceOverride: ns,
|
||||
databaseOverride: ns,
|
||||
});
|
||||
try {
|
||||
await adapter.execute("DEFINE TABLE t SCHEMAFULL");
|
||||
const info =
|
||||
await adapter.query<Record<string, unknown>>("INFO FOR DB");
|
||||
expect(info.length).toBeGreaterThan(0);
|
||||
} finally {
|
||||
await adapter.disconnect();
|
||||
}
|
||||
}, 30000);
|
||||
|
||||
it("query before connect throws DB.NOT_CONNECTED", async () => {
|
||||
const adapter = new SurrealAdapter();
|
||||
await expect(adapter.query("SELECT 1")).rejects.toMatchObject({
|
||||
code: SURREAL_CODES.NOT_CONNECTED,
|
||||
});
|
||||
}, 5000);
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user