57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import { describe, it, expect, afterEach, vi } from 'vitest';
|
|
|
|
vi.mock('@/infra/config/app.config.js', () => {
|
|
const c = {
|
|
server: {
|
|
get maxFileSize() {
|
|
const val = process.env.MAX_FILE_SIZE;
|
|
if (!val) return undefined;
|
|
const parsed = parseInt(val, 10);
|
|
return isNaN(parsed) ? undefined : parsed;
|
|
},
|
|
maxFilesPerField: 10,
|
|
logsDir: 'logs',
|
|
},
|
|
app: {
|
|
logLevel: 'info',
|
|
},
|
|
};
|
|
return { config: c, appConfig: c };
|
|
});
|
|
|
|
import { getMaxFileSize } from '../../src/api/middlewares/upload';
|
|
|
|
const DEFAULT_50MB = 50 * 1024 * 1024;
|
|
|
|
describe('getMaxFileSize', () => {
|
|
const originalEnv = process.env.MAX_FILE_SIZE;
|
|
|
|
afterEach(() => {
|
|
if (originalEnv === undefined) {
|
|
delete process.env.MAX_FILE_SIZE;
|
|
} else {
|
|
process.env.MAX_FILE_SIZE = originalEnv;
|
|
}
|
|
});
|
|
|
|
it('returns 50MB default when env var is not set', () => {
|
|
delete process.env.MAX_FILE_SIZE;
|
|
expect(getMaxFileSize()).toBe(DEFAULT_50MB);
|
|
});
|
|
|
|
it('returns 50MB default when env var is empty string', () => {
|
|
process.env.MAX_FILE_SIZE = '';
|
|
expect(getMaxFileSize()).toBe(DEFAULT_50MB);
|
|
});
|
|
|
|
it('returns custom value when env var is set', () => {
|
|
process.env.MAX_FILE_SIZE = '10485760'; // 10MB
|
|
expect(getMaxFileSize()).toBe(10485760);
|
|
});
|
|
|
|
it('returns default for non-numeric env var', () => {
|
|
process.env.MAX_FILE_SIZE = 'not-a-number';
|
|
expect(getMaxFileSize()).toBe(DEFAULT_50MB);
|
|
});
|
|
});
|