25 lines
772 B
TypeScript
25 lines
772 B
TypeScript
// @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)。',
|
||
);
|
||
});
|
||
});
|