Files
dbx/apps/desktop/src/lib/__tests__/database/databaseDriverManifest.spec.ts
T

39 lines
1.8 KiB
TypeScript
Vendored

import { describe, expect, it } from "vitest";
import { databaseConnectionFormKind, databaseDefaultPort, databaseManifestEntry, databaseRuntimeMode, usesAgentCursorForQuery } from "@/lib/database/databaseDriverManifest";
describe("databaseDriverManifest", () => {
it("uses agent cursor only for agent or external runtimes", () => {
expect(databaseRuntimeMode("gaussdb")).toBe("native");
expect(databaseRuntimeMode("meilisearch")).toBe("native");
expect(databaseRuntimeMode("dynamodb")).toBe("native");
expect(usesAgentCursorForQuery("gaussdb")).toBe(false);
expect(usesAgentCursorForQuery("meilisearch")).toBe(false);
expect(usesAgentCursorForQuery("dynamodb")).toBe(false);
expect(usesAgentCursorForQuery("mysql")).toBe(false);
expect(usesAgentCursorForQuery("jdbc")).toBe(true);
expect(usesAgentCursorForQuery("prestosql")).toBe(true);
expect(usesAgentCursorForQuery("sqlserver")).toBe(false);
expect(usesAgentCursorForQuery("sqlserver", "sqlserver-legacy")).toBe(true);
expect(usesAgentCursorForQuery("sqlserver", " SQLSERVER-LEGACY ")).toBe(true);
});
it("exposes connection defaults from the shared manifest", () => {
expect(databaseDefaultPort("mysql")).toBe(3306);
expect(databaseManifestEntry("h2")).toMatchObject({
dbType: "h2",
runtimeMode: "agent",
agentKey: "h2",
skipTcpProbe: true,
localFile: true,
});
});
it("routes only specialized connection forms explicitly", () => {
expect(databaseConnectionFormKind("mysql")).toBe("standard");
expect(databaseConnectionFormKind("jdbc")).toBe("jdbc");
expect(databaseConnectionFormKind("mq")).toBe("mq");
expect(databaseConnectionFormKind("mqtt")).toBe("mqtt");
expect(databaseConnectionFormKind("nacos")).toBe("nacos");
});
});