Files
PickleRick a8c4a81141
Build / Lint & Test (push) Successful in 22s
Save uncommitted changes
2026-09-21 10:42:08 +02:00

51 lines
1.8 KiB
JavaScript

'use strict';
/**
* test4-subtitles.js
* Validates: extractSubtitlesAndOcr produces correctly named SRT files.
* Source: MKV with 2 ITA SRT streams (forced + SDH).
* Expected: .ita.forced.default.srt and .ita.sdh.srt in source dir.
*/
const path = require('path');
const fs = require('fs');
const { buildMockArgs, cleanupWorkDir, assert } = require('../mock-tdarr-runtime');
const { plugin: subPlugin } = require('../../LocalFlowPlugins/subtitles/extractSubtitlesAndOcr/1.0.0/index');
const FILE = path.resolve('tests/samples/test4_subtitles.mkv');
const SOURCE_DIR = path.dirname(FILE);
const BASE_NAME = path.basename(FILE, '.mkv');
async function run() {
console.log('\n=== TEST 4: Subtitle Extraction (forced + SDH) ===\n');
const args = buildMockArgs({
filePath: FILE,
inputs: { subtitleEditPath: 'SubtitleEdit', languages: 'ita,eng' },
});
await subPlugin(args);
// Check that forced SRT was created
const forcedSrt = path.join(SOURCE_DIR, `${BASE_NAME}.ita.forced.default.srt`);
const sdhSrt = path.join(SOURCE_DIR, `${BASE_NAME}.ita.sdh.srt`);
console.log(' Checking for:', path.basename(forcedSrt));
assert(fs.existsSync(forcedSrt), `Forced SRT exists: ${path.basename(forcedSrt)}`);
console.log(' Checking for:', path.basename(sdhSrt));
// Note: disposition hearing_impaired maps to 'sdh' suffix
// If not found, check for .ita.default.srt variant (FFmpeg disposition naming may vary)
const sdhExists = fs.existsSync(sdhSrt);
const altSdhExists = fs.existsSync(path.join(SOURCE_DIR, `${BASE_NAME}.ita.default.srt`));
assert(sdhExists || altSdhExists, `SDH/hearing-impaired SRT exists`);
// Cleanup generated subtitle files
[forcedSrt, sdhSrt].forEach((f) => { try { fs.unlinkSync(f); } catch (_) {} });
cleanupWorkDir(args);
console.log('\n=== TEST 4 PASSED ===\n');
}
module.exports = run;