diff --git a/contentcuration/contentcuration/frontend/shared/utils/validation.js b/contentcuration/contentcuration/frontend/shared/utils/validation.js index 4ea08515f7..08a37bd8d0 100644 --- a/contentcuration/contentcuration/frontend/shared/utils/validation.js +++ b/contentcuration/contentcuration/frontend/shared/utils/validation.js @@ -373,11 +373,13 @@ export function getNodeDetailsErrors(node) { * @returns {Array} An array of error codes. */ export function getNodeFilesErrors(files) { - let errors = files.filter(f => f.error).map(f => f.error); - let validPrimaryFiles = files.filter(f => !f.error && !f.preset.supplementary); - - if (!validPrimaryFiles.length) { - errors.push(ValidationErrors.NO_VALID_PRIMARY_FILES); + let errors = []; + if (files && files.length > 0) { + errors = files.filter(f => f.error).map(f => f.error); + let validPrimaryFiles = files.filter(f => !f.error && !f.preset.supplementary); + if (!validPrimaryFiles.length) { + errors.push(ValidationErrors.NO_VALID_PRIMARY_FILES); + } } return errors; } diff --git a/contentcuration/contentcuration/frontend/shared/utils/validation.spec.js b/contentcuration/contentcuration/frontend/shared/utils/validation.spec.js index 4bf4d10887..7c71b01216 100644 --- a/contentcuration/contentcuration/frontend/shared/utils/validation.spec.js +++ b/contentcuration/contentcuration/frontend/shared/utils/validation.spec.js @@ -540,10 +540,6 @@ describe('channelEdit utils', () => { expect(isNodeComplete({ nodeDetails: invalidNodeDetails, files })).toBe(false); }); - it('returns false if there are no files', () => { - expect(isNodeComplete({ nodeDetails, files: [] })).toBe(false); - }); - it('returns false if there is at least one invalid file', () => { const invalidFile = { id: 'file-id', error: 'error' }; expect(isNodeComplete({ nodeDetails, files: [...files, invalidFile] })).toBe(false);