dbx/tests/agentDriverUpdatePrompt.tes...

76 lines
1.9 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import {
agentDriverUpdateIgnoreKey,
agentDriverUpdateKeyForConnection,
findAgentDriverUpdatePrompt,
} from "../src/lib/agentDriverUpdatePrompt.ts";
const oracleConnection = {
id: "conn",
name: "Oracle",
db_type: "oracle",
driver_profile: undefined,
} as const;
test("uses the driver profile for versioned agent drivers", () => {
assert.equal(agentDriverUpdateKeyForConnection({ db_type: "oracle", driver_profile: "oracle-10g" }), "oracle-10g");
assert.equal(agentDriverUpdateKeyForConnection({ db_type: "oracle" }), "oracle");
assert.equal(agentDriverUpdateKeyForConnection({ db_type: "postgres" }), null);
});
test("finds installed agent drivers with available updates", () => {
assert.deepEqual(
findAgentDriverUpdatePrompt(oracleConnection, [
{
db_type: "oracle",
label: "Oracle",
installed: true,
installed_version: "1.0.0",
version: "1.1.0",
update_available: true,
},
]),
{
dbType: "oracle",
label: "Oracle",
currentVersion: "1.0.0",
latestVersion: "1.1.0",
},
);
});
test("does not prompt for missing, current, or ignored driver updates", () => {
assert.equal(
findAgentDriverUpdatePrompt(oracleConnection, [
{
db_type: "oracle",
label: "Oracle",
installed: false,
installed_version: null,
version: "1.1.0",
update_available: true,
},
]),
null,
);
assert.equal(
findAgentDriverUpdatePrompt(
oracleConnection,
[
{
db_type: "oracle",
label: "Oracle",
installed: true,
installed_version: "1.0.0",
version: "1.1.0",
update_available: true,
},
],
new Set([agentDriverUpdateIgnoreKey("oracle", "1.1.0")]),
),
null,
);
});