import { GroupingError } from '../../exports/types/grp-errors.types'
import { RUMObject, TYPE_ETAB } from '../../utils'
import { rumObjectsStub_1 } from './rum-1.stub'
import { rumObjectsStub_2 } from './rum-2.stub'
import { rumObjectsStub_3 } from './rum-3.stub'

export interface TestingSet {
  typeEtab: number
  rumObjects: RUMObject[]
  expectedGHM: string
  expectedCMD: string
  returnError: GroupingError | null
}

export const testingSets: TestingSet[] = [
  {
    typeEtab: TYPE_ETAB.PUBLIC_HOSPITAL,
    rumObjects: rumObjectsStub_1,
    expectedGHM: 'M032',
    expectedCMD: '06',
    returnError: {
      code: 170,
      errorName: 'Extension documentaire obligatoire pour un acte CCAM mais absente',
      scope: "valeur d'une variable d'un RUM",
      blockingErrorGroup: null,
      description:
        'la FG signale un RSS contenant au moins un acte dont l’extension documentaire doit être renseignée. En 2013, seule l’extension documentaire des actes CCAM d’anesthésie (type d’activité = ‘4’) est obligatoire.'
    }
  },
  {
    typeEtab: TYPE_ETAB.PUBLIC_HOSPITAL,
    rumObjects: rumObjectsStub_2,
    expectedGHM: 'C491',
    expectedCMD: '08',
    returnError: null
  },
  {
    typeEtab: TYPE_ETAB.PUBLIC_HOSPITAL,
    rumObjects: rumObjectsStub_3,
    expectedGHM: 'C023',
    expectedCMD: '11',
    returnError: {
      code: 170,
      errorName: 'Extension documentaire obligatoire pour un acte CCAM mais absente',
      scope: "valeur d'une variable d'un RUM",
      blockingErrorGroup: null,
      description:
        'la FG signale un RSS contenant au moins un acte dont l’extension documentaire doit être renseignée. En 2013, seule l’extension documentaire des actes CCAM d’anesthésie (type d’activité = ‘4’) est obligatoire.'
    }
  }
]
