Files
2026-07-13 12:47:58 +08:00

50 lines
1.6 KiB
TypeScript

import { assert, test, vi } from 'vitest'
const mocks = vi.hoisted(() => ({
rpcFetch: vi.fn(async () => new Response(null, { status: 204 })),
transportFetch: undefined as typeof fetch | undefined,
}))
vi.mock('@connectrpc/connect-web', () => ({
createConnectTransport: vi.fn((opts: { fetch: typeof fetch }) => {
mocks.transportFetch = opts.fetch
return {}
}),
}))
vi.mock('../../src/envd/http2', () => ({
createEnvdFetch: vi.fn(() => vi.fn()),
createEnvdRpcFetch: vi.fn(() => mocks.rpcFetch),
}))
test('does not pass custom connection headers to envd RPC requests', async () => {
const { ConnectionConfig, Sandbox } = await import('../../src')
const config = new ConnectionConfig()
const sandbox = new Sandbox({
...config,
sandboxId: 'sbx-test',
sandboxDomain: 'sandbox.e2b.dev',
envdVersion: '0.2.4',
envdAccessToken: 'tok',
headers: {
Authorization: 'Bearer user-token',
'X-Custom': 'secret',
},
})
assert.equal(sandbox.sandboxId, 'sbx-test')
assert.ok(mocks.transportFetch)
await mocks.transportFetch('https://sandbox.e2b.dev/rpc', {
headers: { 'Connect-Protocol-Version': '1' },
})
const headers = new Headers(mocks.rpcFetch.mock.calls[0][1]?.headers)
assert.equal(headers.get('Authorization'), null)
assert.equal(headers.get('X-Custom'), null)
assert.equal(headers.get('User-Agent')?.startsWith('e2b-js-sdk/'), true)
assert.equal(headers.get('E2b-Sandbox-Id'), 'sbx-test')
assert.equal(headers.get('X-Access-Token'), 'tok')
assert.equal(headers.get('Connect-Protocol-Version'), '1')
})