Don't include nested keys that are unknown

This commit is contained in:
Michael B. Gale
2026-07-10 14:32:40 +01:00
parent e26215c5d8
commit 26cbf9f504
3 changed files with 30 additions and 6 deletions

View File

@@ -572,13 +572,29 @@ test("mergeDefaultSetupAndUserConfigs - ignores, but warns about, unknown keys f
const result = dbConfig.mergeDefaultSetupAndUserConfigs(
logger,
{
"default-setup": {
borg: [],
org: {
unknown: "foo",
"model-packs": [],
},
} as unknown as dbConfig.DefaultSetupConfig,
"paths-ignore": ["other-path"],
},
configFile,
);
t.deepEqual(result, configFile);
t.deepEqual(result, {
...configFile,
"default-setup": { org: { "model-packs": [] } },
});
const expectedUnrecognisedKeys = [
".default-setup.org.unknown",
".default-setup.borg",
".paths-ignore",
].join(", ");
checkExpectedLogMessages(t, logger.messages, [
"Unrecognised keys in Default Setup configuration: .paths-ignore",
`Unrecognised keys in Default Setup configuration: ${expectedUnrecognisedKeys}`,
]);
});

View File

@@ -150,8 +150,12 @@ export function mergeDefaultSetupAndUserConfigs(
delete result["threat-models"];
delete result["default-setup"];
if (fromConfigInput["default-setup"]) {
result["default-setup"] = fromConfigInput["default-setup"];
if (fromConfigInput["default-setup"]?.org?.["model-packs"]) {
result["default-setup"] = {
org: {
"model-packs": fromConfigInput["default-setup"].org["model-packs"],
},
};
}
if (threatModels.size > 0) {
result["threat-models"] = Array.from(threatModels);