forked from Gitlawb/openclaude
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhttp.test.ts
More file actions
102 lines (90 loc) · 3.3 KB
/
http.test.ts
File metadata and controls
102 lines (90 loc) · 3.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import { afterEach, expect, test } from 'bun:test'
import { getProviderApiUserAgent, getUserAgent } from './http.js'
const originalMacro = (globalThis as Record<string, unknown>).MACRO
const compatibilityVersion = '99.0.0'
const publicBuildVersion = '1.2.3-open'
const originalEnv = {
USER_TYPE: process.env.USER_TYPE,
CLAUDE_CODE_ENTRYPOINT: process.env.CLAUDE_CODE_ENTRYPOINT,
CLAUDE_CODE_USE_OPENAI: process.env.CLAUDE_CODE_USE_OPENAI,
}
afterEach(() => {
;(globalThis as Record<string, unknown>).MACRO = originalMacro
for (const [key, value] of Object.entries(originalEnv)) {
if (value === undefined) {
delete process.env[key]
} else {
process.env[key] = value
}
}
})
test('uses claude-cli token for first-party API compatibility', () => {
;(globalThis as Record<string, unknown>).MACRO = {
VERSION: compatibilityVersion,
DISPLAY_VERSION: publicBuildVersion,
}
process.env.USER_TYPE = 'test-user'
process.env.CLAUDE_CODE_ENTRYPOINT = 'cli'
expect(getUserAgent()).toContain(`claude-cli/${compatibilityVersion}`)
expect(getUserAgent()).not.toContain(`claude-cli/${publicBuildVersion}`)
})
test('uses claude-cli token for anthropic-owned endpoints even with third-party provider', () => {
;(globalThis as Record<string, unknown>).MACRO = {
VERSION: compatibilityVersion,
DISPLAY_VERSION: publicBuildVersion,
}
process.env.USER_TYPE = 'test-user'
process.env.CLAUDE_CODE_ENTRYPOINT = 'cli'
process.env.CLAUDE_CODE_USE_OPENAI = '1'
expect(getUserAgent()).toContain(`claude-cli/${compatibilityVersion}`)
expect(getUserAgent()).not.toContain(`claude-cli/${publicBuildVersion}`)
})
test('uses openclaude-cli token for non-first-party provider API traffic', () => {
;(globalThis as Record<string, unknown>).MACRO = {
VERSION: compatibilityVersion,
DISPLAY_VERSION: publicBuildVersion,
}
process.env.USER_TYPE = 'test-user'
process.env.CLAUDE_CODE_ENTRYPOINT = 'cli'
process.env.CLAUDE_CODE_USE_OPENAI = '1'
expect(getProviderApiUserAgent()).toContain(
`openclaude-cli/${publicBuildVersion}`,
)
expect(getProviderApiUserAgent()).not.toContain(
`openclaude-cli/${compatibilityVersion}`,
)
})
test('uses explicit first-party override for provider-routed api traffic', () => {
;(globalThis as Record<string, unknown>).MACRO = {
VERSION: compatibilityVersion,
DISPLAY_VERSION: publicBuildVersion,
}
process.env.USER_TYPE = 'test-user'
process.env.CLAUDE_CODE_ENTRYPOINT = 'cli'
process.env.CLAUDE_CODE_USE_OPENAI = '1'
expect(getProviderApiUserAgent({ isFirstParty: true })).toContain(
`claude-cli/${compatibilityVersion}`,
)
expect(getProviderApiUserAgent({ isFirstParty: true })).not.toContain(
`claude-cli/${publicBuildVersion}`,
)
})
test('uses claude-cli token for Kimi Code provider profile traffic', () => {
;(globalThis as Record<string, unknown>).MACRO = {
VERSION: compatibilityVersion,
DISPLAY_VERSION: publicBuildVersion,
}
process.env.USER_TYPE = 'test-user'
process.env.CLAUDE_CODE_ENTRYPOINT = 'cli'
process.env.CLAUDE_CODE_USE_OPENAI = '1'
expect(
getProviderApiUserAgent({
providerRouteId: 'kimi-code',
}),
).toContain(`claude-cli/${compatibilityVersion}`)
expect(
getProviderApiUserAgent({
providerRouteId: 'kimi-code',
}),
).not.toContain('openclaude-cli/')
})