import { faker } from '@faker-js/faker'; import { Vector3Faker } from '@test/fakers/vector3.faker'; import { InvertTransformFaker } from '@test/fakers/invert-transform.faker'; import { SegmentAngleFaker } from '@test/fakers/segment-angle.faker'; import { CallToActionFaker } from '@test/fakers/call-to-action.faker'; import { DataOverlayAngle, DataOverlayAngleRaw } from '@3cr/viewer-types-ts'; export class DataOverlayAngleFaker { static random(): DataOverlayAngle { return { ...DataOverlayAngleFaker.randomBase(), CallToAction: CallToActionFaker.random() }; } static randomRaw(): DataOverlayAngleRaw { return { ...DataOverlayAngleFaker.randomBase(), CallToAction: JSON.stringify(CallToActionFaker.randomRaw()) }; } private static randomBase() { return { Version: faker.system.semver(), Id: faker.string.uuid(), Title: faker.lorem.word(), Description: faker.lorem.word(), Points: faker.helpers.multiple(Vector3Faker.random, { count: 3 }), Inverted: InvertTransformFaker.random(), Visibility2d: faker.datatype.boolean(), Visibility3d: faker.datatype.boolean(), SegmentAngles: faker.helpers.multiple(SegmentAngleFaker.random, { count: 1 }), Units: faker.science.unit().symbol }; } }