51 lines
2.6 KiB
TypeScript
Vendored
51 lines
2.6 KiB
TypeScript
Vendored
import assert from "node:assert/strict";
|
|
import { test } from "vitest";
|
|
import { TREE_SCHEMA_DEFAULT_DATABASE_SELECT_VALUE, decodeSelectableDatabaseValue, encodeSelectableDatabaseValue, formatDatabaseLabel, isDefaultDatabase, resolveDefaultDatabase } from "../../apps/desktop/src/lib/database/defaultDatabase.ts";
|
|
|
|
test("优先使用连接上已保存的默认数据库", () => {
|
|
assert.equal(resolveDefaultDatabase({ database: "analytics" }, ["app", "analytics"]), "analytics");
|
|
});
|
|
|
|
test("默认数据库为空时回退到首个可选数据库", () => {
|
|
assert.equal(resolveDefaultDatabase({ database: undefined }, ["app", "analytics"]), "app");
|
|
});
|
|
|
|
test("没有默认数据库且无候选项时返回空字符串", () => {
|
|
assert.equal(resolveDefaultDatabase({ database: undefined }, []), "");
|
|
});
|
|
|
|
test("Cloudflare D1 使用 SQLite main 命名空间而不是连接凭据中的 Database ID", () => {
|
|
assert.equal(resolveDefaultDatabase({ db_type: "cloudflare-d1", database: "d1-database-uuid" }, []), "main");
|
|
assert.equal(isDefaultDatabase({ db_type: "cloudflare-d1", database: "d1-database-uuid" }, "main"), true);
|
|
assert.equal(isDefaultDatabase({ db_type: "cloudflare-d1", database: "d1-database-uuid" }, "d1-database-uuid"), false);
|
|
});
|
|
|
|
test("判断当前数据库是否为默认数据库", () => {
|
|
assert.equal(isDefaultDatabase({ database: "analytics" }, "analytics"), true);
|
|
assert.equal(isDefaultDatabase({ database: "analytics" }, "app"), false);
|
|
assert.equal(isDefaultDatabase(undefined, "analytics"), false);
|
|
assert.equal(isDefaultDatabase({ database: "analytics" }, ""), false);
|
|
});
|
|
|
|
test("tree-schema 默认数据库会编码成可选中的稳定值并可解码回空字符串", () => {
|
|
assert.equal(encodeSelectableDatabaseValue("saphana", ""), TREE_SCHEMA_DEFAULT_DATABASE_SELECT_VALUE);
|
|
assert.equal(decodeSelectableDatabaseValue("saphana", TREE_SCHEMA_DEFAULT_DATABASE_SELECT_VALUE), "");
|
|
});
|
|
|
|
test("命名数据库保持原始值不变", () => {
|
|
assert.equal(encodeSelectableDatabaseValue("saphana", "SALES"), "SALES");
|
|
assert.equal(decodeSelectableDatabaseValue("saphana", "SALES"), "SALES");
|
|
});
|
|
|
|
test("数据库标签复用默认库显示语义", () => {
|
|
assert.equal(formatDatabaseLabel({ db_type: "saphana" }, "", { defaultDatabase: "Default", noDatabase: "No database selected" }), "Default");
|
|
assert.equal(
|
|
formatDatabaseLabel({ db_type: "postgres" }, "analytics", {
|
|
defaultDatabase: "Default",
|
|
noDatabase: "No database selected",
|
|
}),
|
|
"analytics",
|
|
);
|
|
assert.equal(formatDatabaseLabel({ db_type: "redis" }, "3", { defaultDatabase: "Default", noDatabase: "No database selected" }), "db3");
|
|
});
|