import { faker } from '@faker-js/faker'; import { Vector3Faker } from '@test/fakers/vector3.faker'; import { InvertTransformFaker } from '@test/fakers/invert-transform.faker'; import { ColourFaker } from '@test/fakers/colour.faker'; import { Vector2Faker } from '@test/fakers/vector2.faker'; import { CallToActionFaker } from '@test/fakers/call-to-action.faker'; import { DataOverlayAnnotation, DataOverlayAnnotationRaw, } from '@3cr/viewer-types-ts'; export class DataOverlayAnnotationFaker { static random(): DataOverlayAnnotation { return { ...DataOverlayAnnotationFaker.randomBase(), CallToAction: CallToActionFaker.random(), }; } static randomRaw(): DataOverlayAnnotationRaw { return { ...DataOverlayAnnotationFaker.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(), Position: Vector3Faker.random(), Inverted: InvertTransformFaker.random(), Colour2d: ColourFaker.random(), Colour3d: ColourFaker.random(), Size2d: Vector2Faker.random(), Size3d: Vector3Faker.random(), Icon2d: '', Visibility2d: faker.datatype.boolean(), Visibility3d: faker.datatype.boolean(), }; } }