Files
EJClaw/src/token-refresh.test.ts

45 lines
1.3 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
applyUpdatedTokensToEnvContent,
shouldStartTokenRefreshLoop,
} from './token-refresh.js';
describe('shouldStartTokenRefreshLoop', () => {
it('starts refresh for the Claude service', () => {
expect(shouldStartTokenRefreshLoop('claude-code')).toBe(true);
});
it('skips refresh for the Codex service', () => {
expect(shouldStartTokenRefreshLoop('codex')).toBe(false);
});
it('updates both multi-token and single-token env vars when present', () => {
const next = applyUpdatedTokensToEnvContent(
[
'CLAUDE_CODE_OAUTH_TOKEN=old-primary',
'CLAUDE_CODE_OAUTH_TOKENS=old-primary,old-secondary',
'OTHER=value',
].join('\n'),
['new-primary', 'new-secondary'],
);
expect(next).toContain('CLAUDE_CODE_OAUTH_TOKEN=new-primary');
expect(next).toContain(
'CLAUDE_CODE_OAUTH_TOKENS=new-primary,new-secondary',
);
});
it('adds the multi-token env var when it is missing', () => {
const next = applyUpdatedTokensToEnvContent(
['CLAUDE_CODE_OAUTH_TOKEN=old-primary', 'OTHER=value'].join('\n'),
['new-primary', 'new-secondary'],
);
expect(next).toContain('CLAUDE_CODE_OAUTH_TOKEN=new-primary');
expect(next).toContain(
'CLAUDE_CODE_OAUTH_TOKENS=new-primary,new-secondary',
);
});
});