import faker from '@faker-js/faker'; const arrayOf = (f: () => T) => { const length = 3; return Array.from({ length, }, f); }; const objectOf = (f: () => T) => { const keys = ['foo', 'bar', 'qux']; return keys.reduce>((object, key) => { object[key] = f(); return object; }, {}); }; const factories = { boolean: () => faker.datatype.boolean(), date_iso_8601: () => faker.datatype.datetime().toISOString().slice(0, 10), date_time_iso_8601: () => faker.datatype.datetime().toISOString(), decimal: () => faker.datatype.float(), double: () => faker.datatype.float(), integer: () => faker.datatype.number(), json: () => faker.datatype.json(), long: () => faker.datatype.number(), object: () => faker.datatype.json(), string: () => faker.datatype.string(), unit: () => undefined, uuid: () => faker.datatype.uuid(), 'com.paintbatch.enums.sheen': (): com.paintbatch.enums.Sheen => faker.helpers.arrayElement(['M', 'G']), 'com.paintbatch.enums.status': (): com.paintbatch.enums.Status => faker.helpers.arrayElement(['ok']), 'com.paintbatch.models.demand': (): com.paintbatch.models.Demand => ({ paints: arrayOf(() => factories['com.paintbatch.models.paint']()), }), 'com.paintbatch.models.healthcheck': (): com.paintbatch.models.Healthcheck => ({ status: factories['com.paintbatch.enums.status'](), }), 'com.paintbatch.models.optimizeRequest': (): com.paintbatch.models.OptimizeRequest => ({ colors: factories.integer(), customers: factories.integer(), demands: arrayOf(() => factories['com.paintbatch.models.demand']()), }), 'com.paintbatch.models.paint': (): com.paintbatch.models.Paint => ({ id: factories.integer(), sheen: factories['com.paintbatch.enums.sheen'](), }), 'com.paintbatch.models.readableError': (): com.paintbatch.models.ReadableError => ({ text: factories.string(), }), }; export const makeDemand = () => factories['com.paintbatch.models.demand'](); export const makeHealthcheck = () => factories['com.paintbatch.models.healthcheck'](); export const makeOptimizeRequest = () => factories['com.paintbatch.models.optimizeRequest'](); export const makePaint = () => factories['com.paintbatch.models.paint'](); export const makeReadableError = () => factories['com.paintbatch.models.readableError'](); export const makeSheen = () => factories['com.paintbatch.enums.sheen'](); export const makeStatus = () => factories['com.paintbatch.enums.status']();