Files
EJClaw/src/agent-attempt-retry.test.ts
ejclaw 03d4c81192 fix: recover Codex rotation auth failures
- mark Codex bearer/refresh failures as terminal auth-expired states

- sync refreshed session auth back to rotation slots and revive refreshed dead_auth slots

- stop paired arbiter retry loops when Codex accounts are unavailable

- add regression coverage for rotation leases, follow-up suppression, and arbiter closure
2026-06-02 00:21:53 +09:00

30 lines
831 B
TypeScript

import { describe, expect, it } from 'vitest';
import { resolveAttemptRetryAction } from './agent-attempt-retry.js';
describe('resolveAttemptRetryAction', () => {
it('uses the streamed Codex trigger message as the rotation message', () => {
const errorMessage =
'unexpected status 401 Unauthorized: Missing bearer or basic authentication in header';
const action = resolveAttemptRetryAction({
provider: 'codex',
canRetryClaudeCredentials: false,
canRetryCodex: true,
attempt: {
sawOutput: false,
streamedTriggerReason: {
reason: 'auth-expired',
message: errorMessage,
} as any,
},
});
expect(action).toEqual({
kind: 'codex',
trigger: { reason: 'auth-expired' },
rotationMessage: errorMessage,
});
});
});