Files
opencode-proxy/test/key-store.test.js
T
2026-07-21 01:31:53 -05:00

20 lines
866 B
JavaScript

import { describe, expect, it } from 'vitest';
import { createKeyRotator, loadConfiguredKeys, parseKeys, parseKeysJson } from '../src/key-store.js';
describe('key store', () => {
it('parses JSON keys and prefers the environment variable', async () => {
expect(parseKeysJson('[" a ","b"]')).toEqual(['a', 'b']);
expect(() => parseKeysJson('{"key":"a"}')).toThrow();
await expect(loadConfiguredKeys({ env: { OPENCODE_API_KEYS: '["env-key"]' }, path: '/does-not-exist' })).resolves.toEqual(['env-key']);
});
it('parses keys, blank lines, and comments', () => {
expect(parseKeys(' first \n\nsecond # note\n# ignored\n')).toEqual(['first', 'second']);
});
it('rotates keys round-robin', () => {
const rotator = createKeyRotator(['a', 'b']);
expect([rotator.next(), rotator.next(), rotator.next()]).toEqual(['a', 'b', 'a']);
});
});