import { describe, it, expect } from 'vitest'
import { suggestStationForRow } from '../stopwatch-map'

const stations = [
  { stationName: 'IM 2700t Spritzguss', medianSec: 57.4, measurementCount: 12 },
  { stationName: 'Montage Linie 2', medianSec: 31.0, measurementCount: 8 },
  { stationName: 'EOL Prüfung', medianSec: 18.2, measurementCount: 5 },
]

describe('suggestStationForRow (KAR-843 — Stoppuhr → Szenario)', () => {
  it('matches on shared significant tokens regardless of order/case', () => {
    expect(suggestStationForRow('Spritzguss IM2700t', stations)?.stationName).toBe('IM 2700t Spritzguss')
    expect(suggestStationForRow('montage', stations)?.stationName).toBe('Montage Linie 2')
  })

  it('prefers the station with the highest overlap', () => {
    const s = suggestStationForRow('EOL Prüfung elektrisch', stations)
    expect(s?.stationName).toBe('EOL Prüfung')
  })

  it('a single generic shared token is not confident (no false positive)', () => {
    const generic = [
      { stationName: 'Montage Linie 1', medianSec: 30, measurementCount: 4 },
      { stationName: 'Verpackung Linie 2', medianSec: 12, measurementCount: 4 },
    ]
    expect(suggestStationForRow('Etikettieren Linie', generic)).toBeNull()
  })

  it('returns null when nothing plausibly matches', () => {
    expect(suggestStationForRow('Label Barcode', stations)).toBeNull()
    expect(suggestStationForRow('', stations)).toBeNull()
  })
})
