mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-15 12:53:31 +08:00
Avoid Bun filter-mode repository scans that exhaust macOS file descriptors and corrupt subprocess test evidence. Apply rooted filters across server, contract, coverage, persistence, policy, desktop native, and adapter test entrypoints. Confidence: high Scope-risk: narrow Tested: bun run check:policy; bun run check:server; bun run check:chat-contract
59 lines
2.0 KiB
TypeScript
59 lines
2.0 KiB
TypeScript
#!/usr/bin/env bun
|
|
|
|
import { mkdtempSync, rmSync } from 'node:fs'
|
|
import { tmpdir } from 'node:os'
|
|
import { join } from 'node:path'
|
|
import { rootBunTestFilter } from './bun-test-filter'
|
|
import { createSandboxedTestEnvironment } from './test-environment'
|
|
|
|
const root = join(import.meta.dir, '..', '..')
|
|
// Keep this lane deterministic. Real credentials and third-party connectivity
|
|
// belong to the trusted provider-smoke lanes, never to external PR checks.
|
|
const testFiles = [
|
|
'src/server/__tests__/provider-settings-isolation.test.ts',
|
|
'src/server/__tests__/provider-presets.test.ts',
|
|
'src/server/__tests__/provider-runtime-env.test.ts',
|
|
'src/services/api/client.test.ts',
|
|
'src/services/compact/autoCompact.test.ts',
|
|
'src/services/openaiAuth/client.test.ts',
|
|
'src/services/openaiAuth/fetch.test.ts',
|
|
'src/services/openaiAuth/models.test.ts',
|
|
'src/services/openaiAuth/storage.test.ts',
|
|
'src/utils/__tests__/providerManagedEnvCompat.test.ts',
|
|
'src/utils/managedEnv.test.ts',
|
|
'src/utils/model/modelContextWindows.test.ts',
|
|
'src/server/__tests__/providers.test.ts',
|
|
'src/server/__tests__/proxy-transform.test.ts',
|
|
'src/server/__tests__/proxy-streaming.test.ts',
|
|
'src/server/__tests__/network-settings.test.ts',
|
|
'src/server/__tests__/proxy-network-settings.test.ts',
|
|
'src/utils/proxy.test.ts',
|
|
]
|
|
|
|
for (const testFile of testFiles) {
|
|
console.log(`\n[provider-contract] ${testFile}`)
|
|
const sandboxHome = mkdtempSync(join(tmpdir(), 'cc-haha-provider-contract-'))
|
|
let exitCode = 1
|
|
try {
|
|
const proc = Bun.spawn([
|
|
'bun',
|
|
'--no-env-file',
|
|
'test',
|
|
rootBunTestFilter(testFile),
|
|
], {
|
|
cwd: root,
|
|
env: createSandboxedTestEnvironment(sandboxHome),
|
|
stdout: 'inherit',
|
|
stderr: 'inherit',
|
|
})
|
|
exitCode = await proc.exited
|
|
} finally {
|
|
rmSync(sandboxHome, { recursive: true, force: true })
|
|
}
|
|
if (exitCode !== 0) {
|
|
process.exit(exitCode)
|
|
}
|
|
}
|
|
|
|
console.log(`\n[provider-contract] ${testFiles.length} deterministic suites passed`)
|