test: restore leaked provider mocks and Concentrate env in single-process runs (#2328)

Co-authored-by: jatmn <12479882+jatmn@users.noreply.github.com>
This commit is contained in:
JATMN
2026-10-21 22:29:27 -07:00
committed by GitHub
co-authored by jatmn
parent 227fa02e3b
commit dea4d393b3
3 changed files with 18 additions and 2 deletions
+3
View File
@@ -23,6 +23,9 @@ const TEST_ENV_KEYS = [
'CMD_API_KEY',
'COMMANDCODE_API_KEY',
'COMMAND_CODE_API_KEY',
'CONCENTRATE_API_KEY',
'CONCENTRATE_BASE_URL',
'CONCENTRATE_MODEL',
'APISMART_API_KEY',
'APISMART_MODEL',
'API_ROUTE_API_KEY',
+7
View File
@@ -6,6 +6,11 @@ import {
releaseSharedMutationLock,
} from '../test/sharedMutationLock.js'
const realProvidersModule = await import(
`./model/providers.js?real=${Date.now()}-${Math.random()}`
)
const realProviders = { ...realProvidersModule }
const ORIGINAL_ENV = { ...process.env }
function restoreEnv(): void {
@@ -81,6 +86,8 @@ beforeEach(async () => {
afterEach(() => {
try {
mock.restore()
// mock.restore() does not unregister Bun's process-global module mocks.
mock.module('./model/providers.js', () => realProviders)
restoreEnv()
} finally {
releaseSharedMutationLock()
+8 -2
View File
@@ -5,6 +5,11 @@ import {
} from '../test/sharedMutationLock.js'
import { resetSettingsCache } from './settings/settingsCache.js'
const realProvidersModule = await import(
`./model/providers.js?real=${Date.now()}-${Math.random()}`
)
const realProviders = { ...realProvidersModule }
const ENV_KEYS = [
'CLAUDE_CODE_USE_OPENAI',
'CLAUDE_CODE_USE_GEMINI',
@@ -43,6 +48,8 @@ beforeEach(async () => {
afterEach(() => {
try {
mock.restore()
// mock.restore() does not unregister Bun's process-global module mocks.
mock.module('./model/providers.js', () => realProviders)
for (const key of ENV_KEYS) {
if (originalEnv[key] === undefined) {
delete process.env[key]
@@ -58,10 +65,9 @@ afterEach(() => {
async function importFreshThinkingModule() {
mock.restore()
const originalProviders = await import('./model/providers.js')
mock.module('./model/providers.js', () => {
return {
...originalProviders,
...realProviders,
getAPIProvider: () => 'openai',
}
})