/*! * @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 { JobExecutionRecord } from '../JobExecution'; export const createMockJobExecutionRecord = (partialRecord: Partial = {}): JobExecutionRecord => { const jobName = faker.lorem.word(); const id = faker.string.uuid(); const timeQueued = faker.date.recent().toISOString(); const version = Array.from({ length: 3 }) .map(() => faker.number.int()) .join('.'); const status = faker.helpers.objectValue(JOB_EXECUTION_STATUS); const input = faker.helpers.arrayElement([ faker.datatype.boolean(), faker.lorem.word(), faker.number.int(), { [faker.lorem.word()]: faker.lorem.words }, null, undefined, ]); return { context: faker.string.uuid(), ecsTaskId: null, gsi1pk: `${ENTITY_TYPES.jobExecution}~${status}`, id: id, jobName: jobName, lsi1sk: `${status}~${jobName}`, pk: `${ENTITY_TYPES.jobExecution}-${jobName}`, sk: `${timeQueued}-${id}`, status: status, timeFinished: null, timeQueued: timeQueued, timeStarted: null, version, input, retryCount: 0, lastFailureReason: null, retryAfter: null, ...partialRecord, }; }; export const createMockJobExecutionRecords = (size?: number): Array => { const randomSize = size ?? faker.number.int({ max: 3, min: 1 }); return Array.from({ length: randomSize }).map(() => createMockJobExecutionRecord()); };