All files / src/validations/test_utils createLargeImageSample.ts

100% Statements 21/21
50% Branches 1/2
100% Functions 1/1
100% Lines 21/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 261x   1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x   2x 2x 2x   2x 2x   2x 2x 2x 2x  
import sharp from 'sharp';
 
export async function createLargeImageFileList(sizeInMB: number): Promise<FileList> {
  const baseImage = await sharp({
    create: {
      width: 100,
      height: 100,
      channels: 3,
      background: 'white',
    },
  })
    .png()
    .toBuffer();
 
  const paddingSize = sizeInMB * 1024 * 1024 - baseImage.length;
  const padding = Buffer.alloc(paddingSize > 0 ? paddingSize : 0, 0);
  const fullBuffer = Buffer.concat([baseImage, padding]);
 
  const blob = new Blob([fullBuffer], { type: 'image/png' });
  const file = new File([blob], 'large.png', { type: 'image/png' });
 
  const dt = new DataTransfer();
  dt.items.add(file);
  return dt.files;
}