diff --git a/backend/test/tests.js b/backend/test/tests.js index df8ae70..0a8f118 100644 --- a/backend/test/tests.js +++ b/backend/test/tests.js @@ -506,14 +506,19 @@ describe('Downloader', function() { const new_args1 = ['--age-limit', '25', '--yes-playlist', '--abort-on-error', '-o', '%(id)s']; const updated_args1 = utils.injectArgs(original_args1, new_args1); const expected_args1 = ['--no-resize-buffer', '--no-mtime', '--age-limit', '25', '--yes-playlist', '--abort-on-error', '-o', '%(id)s']; - assert(JSON.stringify(updated_args1), JSON.stringify(expected_args1)); + assert(JSON.stringify(updated_args1) === JSON.stringify(expected_args1)); const original_args2 = ['-o', '%(title)s.%(ext)s', '--write-info-json', '--print-json', '--audio-quality', '0', '-x', '--audio-format', 'mp3']; const new_args2 = ['--add-metadata', '--embed-thumbnail', '--convert-thumbnails', 'jpg']; const updated_args2 = utils.injectArgs(original_args2, new_args2); - const expected_args2 = ['-o', '%(title)s.%(ext)s', '--write-info-json', '--print-json', '--audio-quality', '0', '-x', '--audio-format', 'mp3', '--add-metadata', '--embed-thumbnail', '--convert_thumbnails', 'jpg']; - console.log(updated_args2); - assert(JSON.stringify(updated_args2), JSON.stringify(expected_args2)); + const expected_args2 = ['-o', '%(title)s.%(ext)s', '--write-info-json', '--print-json', '--audio-quality', '0', '-x', '--audio-format', 'mp3', '--add-metadata', '--embed-thumbnail', '--convert-thumbnails', 'jpg']; + assert(JSON.stringify(updated_args2) === JSON.stringify(expected_args2)); + + const original_args3 = ['-o', '%(title)s.%(ext)s']; + const new_args3 = ['--min-filesize','1']; + const updated_args3 = utils.injectArgs(original_args3, new_args3); + const expected_args3 = ['-o', '%(title)s.%(ext)s', '--min-filesize', '1']; + assert(JSON.stringify(updated_args3) === JSON.stringify(expected_args3)); }); describe('Twitch', async function () { const twitch_api = require('../twitch'); diff --git a/backend/utils.js b/backend/utils.js index f4df0f8..21c0e50 100644 --- a/backend/utils.js +++ b/backend/utils.js @@ -414,10 +414,11 @@ exports.injectArgs = (original_args, new_args) => { if (CONSTS.YTDL_ARGS_WITH_VALUES.has(new_arg)) { if (original_args.includes(new_arg)) { const original_index = original_args.indexOf(new_arg); - original_args.splice(original_index, 2); + updated_args.splice(original_index, 2); } updated_args.push(new_arg, new_args[i + 1]); + i++; // we need to skip the arg value on the next loop } else { if (!original_args.includes(new_arg)) { updated_args.push(new_arg);