76 lines
1.9 KiB
TypeScript
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,
|
|
);
|
|
});
|