import { describe, expect, it } from 'vitest'
import { resolveActionForFailClass } from './resolve-action'

describe('resolveActionForFailClass', () => {
  it.each([
    ['wrapper-engine-down', { label: 'Retry', kind: 'retry' }],
    ['gate-failed', { label: 'Inspect gate log', kind: 'gate-log' }],
    ['review-failed', { label: 'Open review findings', kind: 'review' }],
    ['provider-quota', { label: 'Reroute account', kind: 'reroute' }],
    ['unknown-class', { label: 'Open run', kind: 'open-run' }],
    [undefined, { label: 'Open run', kind: 'open-run' }],
  ] as const)('maps %s to its honest action', (failClass, expected) => {
    expect(resolveActionForFailClass(failClass)).toEqual(expected)
  })

  it('never maps non-wrapper failures to retry', () => {
    for (const failClass of ['gate-failed', 'review-failed', 'provider-quota', 'unknown', undefined]) {
      expect(resolveActionForFailClass(failClass).kind).not.toBe('retry')
    }
  })
})
