Merge pull request #3294 from kilhyeonjun/fix/doctor-custom-provider-regression
test(doctor): cover custom provider config regression
This commit is contained in:
@@ -55,5 +55,75 @@ describe("config check", () => {
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
it("does not flag configured custom providers as unavailable when they exist in opencode.json", async () => {
|
||||
const originalConfigDir = process.env.OPENCODE_CONFIG_DIR
|
||||
const originalXdgConfig = process.env.XDG_CONFIG_HOME
|
||||
const originalXdgCache = process.env.XDG_CACHE_HOME
|
||||
const testRootDir = join(
|
||||
tmpdir(),
|
||||
`omo-doctor-custom-provider-${Date.now()}-${Math.random().toString(36).slice(2)}`,
|
||||
)
|
||||
const pluginConfigDir = join(testRootDir, "plugin")
|
||||
const xdgConfigDir = join(testRootDir, "xdg-config")
|
||||
const xdgCacheDir = join(testRootDir, "xdg-cache")
|
||||
|
||||
try {
|
||||
mkdirSync(pluginConfigDir, { recursive: true })
|
||||
mkdirSync(join(xdgConfigDir, "opencode"), { recursive: true })
|
||||
mkdirSync(join(xdgCacheDir, "opencode"), { recursive: true })
|
||||
|
||||
process.env.OPENCODE_CONFIG_DIR = pluginConfigDir
|
||||
process.env.XDG_CONFIG_HOME = xdgConfigDir
|
||||
process.env.XDG_CACHE_HOME = xdgCacheDir
|
||||
|
||||
writeFileSync(
|
||||
join(pluginConfigDir, "oh-my-openagent.json"),
|
||||
JSON.stringify({ agents: { sisyphus: { model: "kiro/claude-opus-4-6" } } }, null, 2) + "\n",
|
||||
"utf-8",
|
||||
)
|
||||
writeFileSync(
|
||||
join(xdgConfigDir, "opencode", "opencode.json"),
|
||||
JSON.stringify({
|
||||
provider: {
|
||||
kiro: {
|
||||
npm: "@ai-sdk/openai-compatible",
|
||||
models: { "claude-opus-4-6": {} },
|
||||
},
|
||||
},
|
||||
}, null, 2) + "\n",
|
||||
"utf-8",
|
||||
)
|
||||
writeFileSync(
|
||||
join(xdgCacheDir, "opencode", "models.json"),
|
||||
JSON.stringify({
|
||||
openai: { models: { "gpt-5.4": {} } },
|
||||
}, null, 2) + "\n",
|
||||
"utf-8",
|
||||
)
|
||||
|
||||
const result = await config.checkConfig()
|
||||
const providerIssue = result.issues.find((issue) => issue.title === "Model override uses unavailable provider")
|
||||
|
||||
expect(providerIssue).toBeUndefined()
|
||||
} finally {
|
||||
rmSync(testRootDir, { recursive: true, force: true })
|
||||
if (originalConfigDir === undefined) {
|
||||
delete process.env.OPENCODE_CONFIG_DIR
|
||||
} else {
|
||||
process.env.OPENCODE_CONFIG_DIR = originalConfigDir
|
||||
}
|
||||
if (originalXdgConfig === undefined) {
|
||||
delete process.env.XDG_CONFIG_HOME
|
||||
} else {
|
||||
process.env.XDG_CONFIG_HOME = originalXdgConfig
|
||||
}
|
||||
if (originalXdgCache === undefined) {
|
||||
delete process.env.XDG_CACHE_HOME
|
||||
} else {
|
||||
process.env.XDG_CACHE_HOME = originalXdgCache
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user