import { dataBuilder } from "@helpers/datas/dataBuilder"; import { lorem } from "@helpers/ui/lipsum"; import { get_random_location } from "@mocks/location.mock"; import { get_random_namedResource } from "@mocks/namedResource.mock"; import type { objectParameters } from "@mocks/object.mock"; import { get_random_mediaObject, sampleMediaObject, } from "@mocks/objects/mediaObject.mock"; import { type Object_MediaObject_FactChecking, RDFTYPE_FACT_CHECKING_OBJECT, RDFTYPE_MEDIA_OBJECT, RDFTYPE_OBJECT, } from "@src/rdf"; export const sampleFactCheckingObject: Object_MediaObject_FactChecking = { ...sampleMediaObject, "@type": [RDFTYPE_OBJECT, RDFTYPE_MEDIA_OBJECT, RDFTYPE_FACT_CHECKING_OBJECT], location: get_random_location(), organisation: "Sample Original Languages", person: "Sample Contributors", version: "Sample Publication Service", affiliation: get_random_namedResource(), topics: Array.from( { length: Math.floor(Math.random() * 5) + 1 }, get_random_namedResource ), }; export const get_random_factCheckingObject = ( parameters: objectParameters = {} ): Object_MediaObject_FactChecking => { const removables: string[] = []; const replacements: Object_MediaObject_FactChecking = { ...get_random_mediaObject(parameters), "@type": [RDFTYPE_OBJECT, RDFTYPE_MEDIA_OBJECT, RDFTYPE_FACT_CHECKING_OBJECT], location: get_random_location(), organisation: lorem.generateSentences(1), person: lorem.generateSentences(1), version: lorem.generateSentences(1), affiliation: get_random_namedResource(), topics: Array.from( { length: Math.floor(Math.random() * 5) + 1 }, get_random_namedResource ), }; if (parameters.allowRemovables) { const removableGenerator = (key: string) => { // Between 0 and 25% chance if (Math.random() < Math.random() * 0.25) { removables.push(key); } }; removableGenerator("location"); removableGenerator("organisation"); removableGenerator("person"); removableGenerator("version"); } return dataBuilder( sampleFactCheckingObject, removables, replacements, true ) as Object_MediaObject_FactChecking; };