51 lines
1.8 KiB
JavaScript
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;
|