mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-03 08:53:36 +00:00
test: add tests for ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN passthrough
- apps/server/tests/unit/providers/claude-provider.test.ts Verify custom endpoint environment variables are passed to the SDK.
This commit is contained in:
@@ -12,6 +12,8 @@ describe('claude-provider.ts', () => {
|
|||||||
vi.clearAllMocks();
|
vi.clearAllMocks();
|
||||||
provider = new ClaudeProvider();
|
provider = new ClaudeProvider();
|
||||||
delete process.env.ANTHROPIC_API_KEY;
|
delete process.env.ANTHROPIC_API_KEY;
|
||||||
|
delete process.env.ANTHROPIC_BASE_URL;
|
||||||
|
delete process.env.ANTHROPIC_AUTH_TOKEN;
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getName', () => {
|
describe('getName', () => {
|
||||||
@@ -286,6 +288,93 @@ describe('claude-provider.ts', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('environment variable passthrough', () => {
|
||||||
|
afterEach(() => {
|
||||||
|
delete process.env.ANTHROPIC_BASE_URL;
|
||||||
|
delete process.env.ANTHROPIC_AUTH_TOKEN;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should pass ANTHROPIC_BASE_URL to SDK env', async () => {
|
||||||
|
process.env.ANTHROPIC_BASE_URL = 'https://custom.example.com/v1';
|
||||||
|
|
||||||
|
vi.mocked(sdk.query).mockReturnValue(
|
||||||
|
(async function* () {
|
||||||
|
yield { type: 'text', text: 'test' };
|
||||||
|
})()
|
||||||
|
);
|
||||||
|
|
||||||
|
const generator = provider.executeQuery({
|
||||||
|
prompt: 'Test',
|
||||||
|
cwd: '/test',
|
||||||
|
});
|
||||||
|
|
||||||
|
await collectAsyncGenerator(generator);
|
||||||
|
|
||||||
|
expect(sdk.query).toHaveBeenCalledWith({
|
||||||
|
prompt: 'Test',
|
||||||
|
options: expect.objectContaining({
|
||||||
|
env: expect.objectContaining({
|
||||||
|
ANTHROPIC_BASE_URL: 'https://custom.example.com/v1',
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should pass ANTHROPIC_AUTH_TOKEN to SDK env', async () => {
|
||||||
|
process.env.ANTHROPIC_AUTH_TOKEN = 'custom-auth-token';
|
||||||
|
|
||||||
|
vi.mocked(sdk.query).mockReturnValue(
|
||||||
|
(async function* () {
|
||||||
|
yield { type: 'text', text: 'test' };
|
||||||
|
})()
|
||||||
|
);
|
||||||
|
|
||||||
|
const generator = provider.executeQuery({
|
||||||
|
prompt: 'Test',
|
||||||
|
cwd: '/test',
|
||||||
|
});
|
||||||
|
|
||||||
|
await collectAsyncGenerator(generator);
|
||||||
|
|
||||||
|
expect(sdk.query).toHaveBeenCalledWith({
|
||||||
|
prompt: 'Test',
|
||||||
|
options: expect.objectContaining({
|
||||||
|
env: expect.objectContaining({
|
||||||
|
ANTHROPIC_AUTH_TOKEN: 'custom-auth-token',
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should pass both custom endpoint vars together', async () => {
|
||||||
|
process.env.ANTHROPIC_BASE_URL = 'https://gateway.example.com';
|
||||||
|
process.env.ANTHROPIC_AUTH_TOKEN = 'gateway-token';
|
||||||
|
|
||||||
|
vi.mocked(sdk.query).mockReturnValue(
|
||||||
|
(async function* () {
|
||||||
|
yield { type: 'text', text: 'test' };
|
||||||
|
})()
|
||||||
|
);
|
||||||
|
|
||||||
|
const generator = provider.executeQuery({
|
||||||
|
prompt: 'Test',
|
||||||
|
cwd: '/test',
|
||||||
|
});
|
||||||
|
|
||||||
|
await collectAsyncGenerator(generator);
|
||||||
|
|
||||||
|
expect(sdk.query).toHaveBeenCalledWith({
|
||||||
|
prompt: 'Test',
|
||||||
|
options: expect.objectContaining({
|
||||||
|
env: expect.objectContaining({
|
||||||
|
ANTHROPIC_BASE_URL: 'https://gateway.example.com',
|
||||||
|
ANTHROPIC_AUTH_TOKEN: 'gateway-token',
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('getAvailableModels', () => {
|
describe('getAvailableModels', () => {
|
||||||
it('should return 4 Claude models', () => {
|
it('should return 4 Claude models', () => {
|
||||||
const models = provider.getAvailableModels();
|
const models = provider.getAvailableModels();
|
||||||
|
|||||||
Reference in New Issue
Block a user