// lib/api/feature-gates.ts tests. wertstromScenariosGate previously had only
// indirect coverage (via app/api/wertstrom/[id]/duplicate/__tests__/route.test.ts)
// — added here alongside the new P3 wertstromUxV2Gate for direct, fast unit
// coverage of both pure predicates.

import { describe, it, expect } from 'vitest'
import { wertstromScenariosGate, wertstromUxV2Gate, wertstromSimvsmImportGate } from '../feature-gates'

describe('wertstromScenariosGate', () => {
  it('rejects when disabled', () => {
    const result = wertstromScenariosGate(false)
    expect(result.ok).toBe(false)
    if (!result.ok) expect(result.error).toBeTruthy()
  })

  it('allows when enabled', () => {
    expect(wertstromScenariosGate(true)).toEqual({ ok: true })
  })
})

describe('wertstromUxV2Gate', () => {
  it('rejects when disabled, with a user-facing German error', () => {
    const result = wertstromUxV2Gate(false)
    expect(result.ok).toBe(false)
    if (!result.ok) expect(result.error).toBe('Der Wertstrom-Assistent ist für dieses Deployment nicht aktiviert.')
  })

  it('allows when enabled', () => {
    expect(wertstromUxV2Gate(true)).toEqual({ ok: true })
  })
})

describe('wertstromSimvsmImportGate', () => {
  it('rejects when disabled, with a user-facing German error', () => {
    const result = wertstromSimvsmImportGate(false)
    expect(result.ok).toBe(false)
    if (!result.ok) expect(result.error).toBe('Der SimVSM-Import ist für dieses Deployment nicht aktiviert.')
  })

  it('allows when enabled', () => {
    expect(wertstromSimvsmImportGate(true)).toEqual({ ok: true })
  })
})
