Docker tabanlı mikro servis mimarisi ile altyazı otomasyon sistemi altyapısı kuruldu. - Core (Node.js): Chokidar dosya izleyici, BullMQ iş kuyrukları, ffprobe medya analizi, MongoDB entegrasyonu ve dosya yazma işlemleri. - API (Fastify): Mock sağlayıcılar, arşiv güvenliği (zip-slip), altyazı doğrulama, puanlama ve aday seçim motoru. - UI (React/Vite): İş yönetimi paneli, canlı SSE log akışı, manuel inceleme arayüzü ve sistem ayarları. - Altyapı: Docker Compose (dev/prod), Redis, Mongo ve çevresel değişken yapılandırmaları.
22 lines
842 B
TypeScript
22 lines
842 B
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { detectSubtitleType, isProbablyText, validateAss, validateSrt } from '../src/lib/validators.js';
|
|
|
|
describe('subtitle validators', () => {
|
|
it('validates srt content', () => {
|
|
const srt = `1\n00:00:01,000 --> 00:00:02,000\na\n\n2\n00:00:03,000 --> 00:00:04,000\nb\n\n3\n00:00:05,000 --> 00:00:06,000\nc\n`;
|
|
expect(validateSrt(srt)).toBe(true);
|
|
expect(detectSubtitleType(srt)).toBe('srt');
|
|
});
|
|
|
|
it('validates ass content', () => {
|
|
const ass = `[Script Info]\n[Events]\nDialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,x`;
|
|
expect(validateAss(ass)).toBe(true);
|
|
expect(detectSubtitleType(ass)).toBe('ass');
|
|
});
|
|
|
|
it('rejects binary for text detector', () => {
|
|
const b = Buffer.from([0, 255, 3, 0, 9]);
|
|
expect(isProbablyText(b)).toBe(false);
|
|
});
|
|
});
|