49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
import { describe, test, expect } from 'bun:test';
|
|
import { validateConfig, type GeneratorConfig } from '../../src/config.js';
|
|
|
|
describe('config', () => {
|
|
describe('validateConfig', () => {
|
|
test('должен пройти валидацию для корректной конфигурации', () => {
|
|
const config: Partial<GeneratorConfig> = {
|
|
inputPath: './openapi.json',
|
|
outputPath: './output',
|
|
fileName: 'Api',
|
|
};
|
|
|
|
expect(() => validateConfig(config)).not.toThrow();
|
|
expect(validateConfig(config)).toBe(true);
|
|
});
|
|
|
|
test('должен пройти валидацию без опционального fileName', () => {
|
|
const config: Partial<GeneratorConfig> = {
|
|
inputPath: './openapi.json',
|
|
outputPath: './output',
|
|
};
|
|
|
|
expect(() => validateConfig(config)).not.toThrow();
|
|
expect(validateConfig(config)).toBe(true);
|
|
});
|
|
|
|
test('должен выбросить ошибку без inputPath', () => {
|
|
const config: Partial<GeneratorConfig> = {
|
|
outputPath: './output',
|
|
};
|
|
|
|
expect(() => validateConfig(config)).toThrow('Input path is required');
|
|
});
|
|
|
|
test('должен выбросить ошибку без outputPath', () => {
|
|
const config: Partial<GeneratorConfig> = {
|
|
inputPath: './openapi.json',
|
|
};
|
|
|
|
expect(() => validateConfig(config)).toThrow('Output path is required');
|
|
});
|
|
|
|
test('должен выбросить ошибку без обоих обязательных полей', () => {
|
|
const config: Partial<GeneratorConfig> = {};
|
|
|
|
expect(() => validateConfig(config)).toThrow('Configuration validation failed');
|
|
});
|
|
});
|
|
}); |