import { describe, expect, it } from 'vitest'; import { analyzePickedUploadFiles } from '@/utils/upload/analyzePickedUploadFiles'; const makeFile = (name: string, type: string, size: number): File => new File([new Uint8Array(size)], name, { type }); describe('analyzePickedUploadFiles', () => { const maxImageBytes = 100; const maxQueueSize = 2; it('accepts images within size and queue limits', () => { const picked = [makeFile('a.png', 'image/png', 50), makeFile('b.jpg', 'image/jpeg', 80)]; const result = analyzePickedUploadFiles(picked, maxImageBytes, maxQueueSize); expect(result.accepted).toHaveLength(2); expect(result.nonImageCount).toBe(0); expect(result.oversizedImagesCount).toBe(0); expect(result.queueOmittedImagesCount).toBe(0); }); it('skips non-images and oversized files and caps the queue', () => { const picked = [ makeFile('doc.pdf', 'application/pdf', 10), makeFile('big.png', 'image/png', 200), makeFile('1.png', 'image/png', 10), makeFile('2.png', 'image/png', 10), makeFile('3.png', 'image/png', 10) ]; const result = analyzePickedUploadFiles(picked, maxImageBytes, maxQueueSize); expect(result.accepted.map(f => f.name)).toEqual(['1.png', '2.png']); expect(result.nonImageCount).toBe(1); expect(result.oversizedImagesCount).toBe(1); expect(result.queueOmittedImagesCount).toBe(1); }); });