dbx/packages/app-tests/databaseOptions.test.ts

36 lines
1.2 KiB
TypeScript

import assert from "node:assert/strict";
import { test } from "vitest";
import { databaseOptionsForConnection } from "../../apps/desktop/src/composables/useDatabaseOptions.ts";
test("tree-schema connections include the default database when no catalogs are returned", () => {
assert.deepEqual(databaseOptionsForConnection([], { db_type: "saphana" }), [""]);
});
test("non tree-schema connections keep an empty database option list", () => {
assert.deepEqual(databaseOptionsForConnection([], { db_type: "mysql" }), []);
});
test("database options preserve returned catalogs when available", () => {
assert.deepEqual(databaseOptionsForConnection(["app", "analytics"], { db_type: "jdbc" }), ["app", "analytics"]);
});
test("database options respect visible database filters", () => {
assert.deepEqual(
databaseOptionsForConnection(["app", "analytics", "billing"], {
db_type: "mysql",
visible_databases: ["billing", "missing"],
}),
["billing"],
);
});
test("redis database options respect visible database filters", () => {
assert.deepEqual(
databaseOptionsForConnection(["0", "1", "2"], {
db_type: "redis",
visible_databases: ["2"],
}),
["2"],
);
});