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

35 lines
1.1 KiB
TypeScript

import { beforeAll, describe, expect, it } from "vitest";
import { buildSystemPrompt, type AiContext } from "@/lib/ai/ai";
import { setLocale } from "@/i18n";
function context(overrides: Partial<AiContext> = {}): AiContext {
return {
connectionId: "conn-1",
connectionName: "Postgres",
databaseType: "postgres",
database: "app",
currentSql: "",
tables: [],
sqlFiles: [],
truncated: false,
...overrides,
};
}
describe("AI SQL dialect prompt", () => {
// buildSystemPrompt picks zh/en copy via currentLocale(); pin to en so the
// English-string assertions are deterministic regardless of the host OS locale.
beforeAll(async () => {
await setLocale("en");
});
it("pins identifier quoting to the active database type", () => {
const prompt = buildSystemPrompt("generate", context(), "ask");
expect(prompt).toContain("Database type: postgres");
expect(prompt).toContain("PostgreSQL/SQLite/Oracle");
expect(prompt).toContain('double quotes "name"');
expect(prompt).toContain("Do not switch dialects merely because the user mentions another database in prose.");
});
});