mirror of
https://github.com/stablyai/orca.git
synced 2026-10-03 08:02:12 +00:00
73 lines
2.4 KiB
TypeScript
73 lines
2.4 KiB
TypeScript
import { afterEach, describe, expect, it } from 'vitest'
|
|
import { runCodexAppServerSession } from './codex-app-server-session'
|
|
|
|
const originalCodexHome = process.env.CODEX_HOME
|
|
|
|
afterEach(() => {
|
|
if (originalCodexHome === undefined) {
|
|
delete process.env.CODEX_HOME
|
|
} else {
|
|
process.env.CODEX_HOME = originalCodexHome
|
|
}
|
|
})
|
|
|
|
describe('runCodexAppServerSession environment', () => {
|
|
it('removes inherited variables requested by a default-home invocation', async () => {
|
|
process.env.CODEX_HOME = '/tmp/inherited-managed-home'
|
|
const server = String.raw`
|
|
const readline = require('node:readline')
|
|
readline.createInterface({ input: process.stdin }).on('line', (line) => {
|
|
const message = JSON.parse(line)
|
|
if (typeof message.id !== 'number') return
|
|
const result = message.method === 'env/get'
|
|
? { codexHome: process.env.CODEX_HOME ?? null }
|
|
: {}
|
|
process.stdout.write(JSON.stringify({ id: message.id, result }) + '\n')
|
|
})
|
|
`
|
|
|
|
const result = await runCodexAppServerSession(
|
|
{
|
|
command: process.execPath,
|
|
cliPath: null,
|
|
args: ['-e', server],
|
|
envToDelete: ['CODEX_HOME'],
|
|
timeoutMs: 5_000
|
|
},
|
|
({ request }) => request('env/get')
|
|
)
|
|
|
|
expect(result).toEqual({ codexHome: null })
|
|
})
|
|
|
|
it('keeps the session alive after a large legitimate response', async () => {
|
|
const server = String.raw`
|
|
const readline = require('node:readline')
|
|
readline.createInterface({ input: process.stdin }).on('line', (line) => {
|
|
const message = JSON.parse(line)
|
|
if (typeof message.id !== 'number') return
|
|
const result = message.method === 'test/large'
|
|
? { data: 'x'.repeat(1024 * 1024 + 1) }
|
|
: { alive: true }
|
|
process.stdout.write(JSON.stringify({ id: message.id, result }) + '\n')
|
|
})
|
|
`
|
|
|
|
const result = await runCodexAppServerSession(
|
|
{
|
|
command: process.execPath,
|
|
cliPath: null,
|
|
args: ['-e', server],
|
|
timeoutMs: 5_000
|
|
},
|
|
async ({ request }) => {
|
|
const large = (await request('test/large')) as { data: string }
|
|
const followup = await request('test/followup')
|
|
return { largeBytes: Buffer.byteLength(large.data, 'utf8'), followup }
|
|
}
|
|
)
|
|
|
|
expect(result).toEqual({ largeBytes: 1024 * 1024 + 1, followup: { alive: true } })
|
|
})
|
|
})
|