You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { DEFAULT_SETTINGS, type UserSettings } from '~/types';
|
|
|
|
describe('Settings validation logic', () => {
|
|
it('should have valid default settings', () => {
|
|
expect(DEFAULT_SETTINGS.max_articles_per_source).toBe(3);
|
|
expect(DEFAULT_SETTINGS.ai_model).toBe('');
|
|
expect(DEFAULT_SETTINGS.ai_model_websearch).toBe('');
|
|
expect(DEFAULT_SETTINGS.ai_provider).toBe('');
|
|
expect(DEFAULT_SETTINGS.rate_limit_max_requests).toBeNull();
|
|
expect(DEFAULT_SETTINGS.rate_limit_time_window_seconds).toBeNull();
|
|
});
|
|
|
|
it('should parse batch_size as integer with fallback', () => {
|
|
const parseBatchSize = (value: string): number =>
|
|
parseInt(value) || 5;
|
|
|
|
expect(parseBatchSize('10')).toBe(10);
|
|
expect(parseBatchSize('')).toBe(5);
|
|
expect(parseBatchSize('abc')).toBe(5);
|
|
});
|
|
|
|
it('should parse max_articles_per_source as integer with fallback', () => {
|
|
const parseMaxArticles = (value: string): number =>
|
|
parseInt(value) || 3;
|
|
|
|
expect(parseMaxArticles('5')).toBe(5);
|
|
expect(parseMaxArticles('')).toBe(3);
|
|
expect(parseMaxArticles('abc')).toBe(3);
|
|
});
|
|
});
|