ElectronicBabylonianLiterature/ebl-frontend

View on GitHub
src/test-support/old-siglum-fixtures.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { Factory } from 'fishery'
import Chance from 'chance'
import { OldSiglum } from 'corpus/domain/manuscript'
import {
  bibliographyEntryFactory,
  cslDataFactory,
  referenceDtoFactory,
  referenceFactory,
} from './bibliography-fixtures'
import { OldSiglumDto } from 'corpus/application/dtos'

const defaultChance = new Chance()

export const oldSiglumFactory = Factory.define<OldSiglum>(
  ({ transientParams }) => {
    const chance = transientParams.chance ?? defaultChance
    const entry = bibliographyEntryFactory.build({}, { transient: { chance } })

    return new OldSiglum(
      chance.word(),
      referenceFactory.build({ document: entry }, { transient: { chance } })
    )
  }
)

export const oldSiglumDtoFactory = Factory.define<
  OldSiglumDto,
  { chance: Chance.Chance }
>(({ associations, transientParams }) => {
  const chance = transientParams.chance ?? defaultChance
  const cslData = cslDataFactory.build()

  return {
    siglum: chance.string(),
    reference: referenceDtoFactory.build(
      {},
      { associations: { document: cslData } }
    ),
  }
})