// @vitest-environment jsdom import { describe, expect, test } from 'vitest'; import { PUZZLE_REFERENCE_IMAGE_MAX_UPLOAD_BYTES, validatePuzzleReferenceImageFile, } from './puzzleAssetClient'; describe('puzzle reference image upload validation', () => { test('limits uploads to 6MB', () => { expect(PUZZLE_REFERENCE_IMAGE_MAX_UPLOAD_BYTES).toBe(6 * 1024 * 1024); }); test('rejects files that exceed the upload limit with a precise message', () => { const file = new File([ 'x'.repeat(PUZZLE_REFERENCE_IMAGE_MAX_UPLOAD_BYTES + 1), ], 'too-large.png', { type: 'image/png' }); expect(() => validatePuzzleReferenceImageFile(file)).toThrow( '参考图过大,请压缩后再上传(当前 6.0MB,最多 6MB)。', ); }); });