52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
import {
|
|
formatFileSize,
|
|
getFileExtension,
|
|
formatFileExtension,
|
|
} from '../../../app/utils/file';
|
|
import { expect, test, describe } from 'vitest';
|
|
|
|
/**
|
|
* 单元测试: formatFileSize
|
|
*/
|
|
describe('formatFileSize', () => {
|
|
test('format bytes correctly', () => {
|
|
expect(formatFileSize(500)).toBe('500.00 B');
|
|
});
|
|
test('format kilobytes correctly', () => {
|
|
expect(formatFileSize(2048)).toBe('2.00 KB');
|
|
});
|
|
test('format megabytes correctly', () => {
|
|
expect(formatFileSize(5 * 1024 * 1024)).toBe('5.00 MB');
|
|
});
|
|
});
|
|
|
|
/**
|
|
* 单元测试: getFileExtension
|
|
*/
|
|
describe('getFileExtension', () => {
|
|
test('extract extension from filename', () => {
|
|
expect(getFileExtension('document.pdf')).toBe('pdf');
|
|
});
|
|
test('handle filenames without extension', () => {
|
|
expect(getFileExtension('README')).toBe('');
|
|
});
|
|
test('handle multiple dots in filename', () => {
|
|
expect(getFileExtension('archive.tar.gz')).toBe('gz');
|
|
});
|
|
test('handle empty filename', () => {
|
|
expect(getFileExtension('')).toBe('');
|
|
});
|
|
});
|
|
|
|
/**
|
|
* 单元测试: formatFileExtension
|
|
*/
|
|
describe('formatFileExtension', () => {
|
|
test('format extension without dot', () => {
|
|
expect(formatFileExtension('txt')).toBe('TXT');
|
|
});
|
|
test('format extension with dot', () => {
|
|
expect(formatFileExtension('.jpg')).toBe('JPG');
|
|
});
|
|
});
|