From ebe79c04e6d4a8633bc048d1379f9c756ca3d27b Mon Sep 17 00:00:00 2001 From: Ioan Lucut Date: Sat, 13 Jan 2024 17:41:59 +0200 Subject: [PATCH] Refactor converterService to check for missing song IDs and throw an error if found. --- .../proPresenter7SongConverter.spec.ts.snap | 27 +++++++++++++++++++ src/converterService.ts | 11 +++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/__snapshots__/proPresenter7SongConverter.spec.ts.snap b/src/__snapshots__/proPresenter7SongConverter.spec.ts.snap index 05510e1..3cc3d12 100644 --- a/src/__snapshots__/proPresenter7SongConverter.spec.ts.snap +++ b/src/__snapshots__/proPresenter7SongConverter.spec.ts.snap @@ -225,6 +225,7 @@ exports[`proPresenter7SongConverter Advanced song (w/ subsection) should convert "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -989,6 +990,7 @@ exports[`proPresenter7SongConverter Advanced song (w/ subsection) should convert "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -1769,6 +1771,7 @@ exports[`proPresenter7SongConverter Advanced song (w/ subsection) should convert "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -2783,6 +2786,7 @@ exports[`proPresenter7SongConverter Advanced song (w/ subsection) should convert "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -3788,6 +3792,7 @@ exports[`proPresenter7SongConverter Advanced song (w/ subsection) should convert "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -4722,6 +4727,7 @@ exports[`proPresenter7SongConverter Advanced song (w/ subsection) should convert "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -5678,6 +5684,7 @@ exports[`proPresenter7SongConverter Advanced song (w/ subsection) should convert "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -6644,6 +6651,7 @@ exports[`proPresenter7SongConverter Advanced song (w/ subsection) should convert "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -8257,6 +8265,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -9021,6 +9030,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -9801,6 +9811,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -10706,6 +10717,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -11611,6 +11623,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -12396,6 +12409,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -13182,6 +13196,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -13967,6 +13982,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -14753,6 +14769,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -15538,6 +15555,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -16323,6 +16341,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -17109,6 +17128,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -17895,6 +17915,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -18681,6 +18702,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -19467,6 +19489,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -20253,6 +20276,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -21039,6 +21063,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -21825,6 +21850,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, @@ -22611,6 +22637,7 @@ exports[`proPresenter7SongConverter Basic song (no subsection) should convert to "audioInput": undefined, "background": undefined, "blendMode": undefined, + "capture": undefined, "clear": undefined, "clearGroup": undefined, "collectionElement": undefined, diff --git a/src/converterService.ts b/src/converterService.ts index 740f971..ec62414 100644 --- a/src/converterService.ts +++ b/src/converterService.ts @@ -1,6 +1,6 @@ import fs from 'fs'; import path from 'path'; -import { isEqual } from 'lodash'; +import { isEmpty, isEqual } from 'lodash'; import recursive from 'recursive-readdir'; import { Presentation } from '../proto/presentation'; import { @@ -143,6 +143,15 @@ export const getBasicDeploymentInfo = async ( // Current deployment const deployableSongs = await getDeployableSongs(sourceDir); + const problematicSongs = deployableSongs.filter(({ song }) => !song.id); + if (!isEmpty(problematicSongs)) { + throw new Error( + `The following songs are missing an ID: ${JSON.stringify( + problematicSongs.map(({ fileName }) => fileName), + )}`, + ); + } + const currentManifest = { inventory: await generateManifest(deployableSongs), updatedOn: versionedDir,