export const makeFixture = (defaults: T, overrides?: Partial): T => ({ ...defaults, ...overrides, }); export const makeFixtures = ( defaults: T, count: number, overrides?: Partial, uniqueIdentifierKey?: keyof T ): T[] => { const fixtures: T[] = []; for (let i = 0; i < count; i++) { if (uniqueIdentifierKey !== undefined) { fixtures.push( makeFixture(defaults, { ...overrides, [uniqueIdentifierKey]: typeof defaults[uniqueIdentifierKey] === 'string' ? `${i}` : i, }) ); } else { fixtures.push(makeFixture(defaults, overrides)); } } return fixtures; };