/*! * @license * Copyright Squiz Australia Pty Ltd. All Rights Reserved. */ import { faker } from '@faker-js/faker/locale/en'; import { JOB_EXECUTION_STATUS } from '../../../constants/JobExecutionStatus.constants'; import { ENTITY_TYPES } from '../../../constants/Repository.constants'; import { JobExecution } from '../JobExecution'; export const createMockJobExecution = (partialRecord: Partial = {}): JobExecution => { const version = Array.from({ length: 3 }) .map(() => faker.number.int()) .join('.'); const input = faker.helpers.arrayElement([ faker.datatype.boolean(), faker.lorem.word(), faker.number.int(), { [faker.lorem.word()]: faker.lorem.words() }, null, ]); const jobName = partialRecord.jobName || faker.lorem.word(); const timeQueued = new Date().toISOString(); return { context: faker.string.uuid(), ecsTaskId: null, id: `${timeQueued}-${faker.string.uuid()}`, jobName, status: JOB_EXECUTION_STATUS.queued, timeFinished: null, timeQueued, timeStarted: null, type: `${ENTITY_TYPES.jobExecution}-${jobName}`, version, input, retryCount: 0, lastFailureReason: null, retryAfter: null, ...partialRecord, }; }; export const createMockJobExecutions = (size?: number): Array => { const randomSize = size ?? faker.number.int({ max: 3, min: 1 }); return Array.from({ length: randomSize }).map(() => createMockJobExecution()); };