mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-09-19 10:02:04 +08:00
fix: Add unit test and review bot fixes
This commit is contained in:
@@ -1662,7 +1662,7 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
|
||||
}
|
||||
|
||||
await this.client.global.dispose().catch((e: unknown) =>
|
||||
console.warn("[Kilo New] KiloProvider: global.dispose() after login failed:", e),
|
||||
console.warn("[Kilo New] KiloProvider: global.dispose() after org switch failed:", e),
|
||||
)
|
||||
|
||||
// Org switch succeeded — refresh profile and providers independently (best-effort)
|
||||
@@ -1717,6 +1717,11 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
|
||||
type: "profileData",
|
||||
data: null,
|
||||
})
|
||||
|
||||
await this.client.global.dispose().catch((e: unknown) =>
|
||||
console.warn("[Kilo New] KiloProvider: global.dispose() after logout failed:", e),
|
||||
)
|
||||
|
||||
} catch (error) {
|
||||
console.error("[Kilo New] KiloProvider: ❌ Logout failed:", error)
|
||||
this.postMessage({
|
||||
@@ -1725,9 +1730,7 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
|
||||
})
|
||||
}
|
||||
|
||||
await this.client.global.dispose().catch((e: unknown) =>
|
||||
console.warn("[Kilo New] KiloProvider: global.dispose() after login failed:", e),
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -121,3 +121,52 @@ test("model fetch without OAuth accountId does not set kilocodeOrganizationId",
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
test("ModelCache.clear removes cached entry so next fetch hits the network", async () => {
|
||||
await using tmp = await tmpdir({
|
||||
init: async (dir) => {
|
||||
await Bun.write(
|
||||
path.join(dir, "opencode.json"),
|
||||
JSON.stringify({
|
||||
$schema: "https://app.kilo.ai/config.json",
|
||||
}),
|
||||
)
|
||||
},
|
||||
})
|
||||
await Instance.provide({
|
||||
directory: tmp.path,
|
||||
init: async () => {
|
||||
await Auth.set("kilo", {
|
||||
type: "oauth",
|
||||
access: "token-clear-test",
|
||||
refresh: "refresh-clear",
|
||||
expires: Date.now() + 3600000,
|
||||
accountId: "org-clear",
|
||||
})
|
||||
},
|
||||
fn: async () => {
|
||||
// Populate cache
|
||||
captured = undefined
|
||||
ModelCache.clear("kilo")
|
||||
await ModelCache.fetch("kilo")
|
||||
expect(captured).toBeDefined()
|
||||
|
||||
// Verify cache is populated — second fetch should NOT call fetchKiloModels
|
||||
captured = undefined
|
||||
await ModelCache.fetch("kilo")
|
||||
expect(captured).toBeUndefined()
|
||||
expect(ModelCache.get("kilo")).toBeDefined()
|
||||
|
||||
// Clear the cache
|
||||
ModelCache.clear("kilo")
|
||||
|
||||
// get() should return undefined after clear
|
||||
expect(ModelCache.get("kilo")).toBeUndefined()
|
||||
|
||||
// Next fetch should call fetchKiloModels again
|
||||
captured = undefined
|
||||
await ModelCache.fetch("kilo")
|
||||
expect(captured).toBeDefined()
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user