fix(opencode): ignore unknown config fields (#41312)
This commit is contained in:
committed by
GitHub
parent
fe82a1b6ca
commit
38e10eb140
@@ -597,12 +597,12 @@ accountTokenIt.instance("resolves env templates in account config with account t
|
||||
}),
|
||||
)
|
||||
|
||||
it.instance("validates config schema and throws on invalid fields", () =>
|
||||
it.instance("validates config schema and throws on invalid values", () =>
|
||||
Effect.gen(function* () {
|
||||
const test = yield* TestInstance
|
||||
yield* writeConfigEffect(test.directory, {
|
||||
$schema: "https://opencode.ai/config.json",
|
||||
invalid_field: "should cause error",
|
||||
model: 42,
|
||||
})
|
||||
const exit = yield* Config.use.get().pipe(Effect.exit)
|
||||
expect(Exit.isFailure(exit)).toBe(true)
|
||||
@@ -1331,7 +1331,7 @@ it.instance("permission config preserves user key order", () =>
|
||||
}),
|
||||
)
|
||||
|
||||
test("config parser preserves permission order while rejecting unknown top-level keys", () => {
|
||||
test("config parser preserves permission order while ignoring unknown top-level keys", () => {
|
||||
const config = ConfigParse.schema(
|
||||
ConfigV1.Info,
|
||||
{
|
||||
@@ -1340,18 +1340,13 @@ test("config parser preserves permission order while rejecting unknown top-level
|
||||
"*": "deny",
|
||||
edit: "ask",
|
||||
},
|
||||
plugins: ["example"],
|
||||
},
|
||||
"test",
|
||||
)
|
||||
|
||||
expect(Object.keys(config.permission!)).toEqual(["bash", "*", "edit"])
|
||||
try {
|
||||
ConfigParse.schema(ConfigV1.Info, { invalid_field: true }, "test")
|
||||
throw new Error("expected config parse to fail")
|
||||
} catch (err) {
|
||||
const error = err as { data?: { issues?: Array<{ code?: string; keys?: string[]; path?: string[] }> } }
|
||||
expect(error.data?.issues?.[0]).toMatchObject({ code: "unrecognized_keys", keys: ["invalid_field"], path: [] })
|
||||
}
|
||||
expect(config).not.toHaveProperty("plugins")
|
||||
})
|
||||
|
||||
// MCP config merging tests
|
||||
|
||||
Reference in New Issue
Block a user