diff --git a/app/assets/javascripts/ml/model_registry/services/upload_model.js b/app/assets/javascripts/ml/model_registry/services/upload_model.js index 0c1af3ee526505c0eb2ceb3aa0bb94892422898e..7d70c92c0212faf79342ef1815768b372161a387 100644 --- a/app/assets/javascripts/ml/model_registry/services/upload_model.js +++ b/app/assets/javascripts/ml/model_registry/services/upload_model.js @@ -14,6 +14,11 @@ export const uploadModel = ({ if (!file) { return Promise.resolve(); } + + if (subfolder && subfolder.includes(' ')) { + return Promise.reject(new Error(s__('Mlmodelregistry|Subfolder cannot contain spaces'))); + } + if (!maxAllowedFileSize) { return Promise.resolve(s__('Mlmodelregistry|Provide the max allowed file size')); } diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 0aecf29d8b9d291660bba28c00adbd18a9db590c..bc758c2a97aa524475e3dd8a099fcd5678bc4ad0 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -33627,6 +33627,9 @@ msgstr[1] "" msgid "Mlmodelregistry|Provide the max allowed file size" msgstr "" +msgid "Mlmodelregistry|Subfolder cannot contain spaces" +msgstr "" + msgid "Mock an external CI integration." msgstr "" diff --git a/spec/frontend/ml/model_registry/services/upload_model_spec.js b/spec/frontend/ml/model_registry/services/upload_model_spec.js index f8388c0d2da534fc95aa0f6c7bf217321d6a6f3d..149e9d2d6157524dfbef1d5b9e62d9df05e8311b 100644 --- a/spec/frontend/ml/model_registry/services/upload_model_spec.js +++ b/spec/frontend/ml/model_registry/services/upload_model_spec.js @@ -43,6 +43,14 @@ describe('uploadModel', () => { }); }); + it('should not upload when the subfolder contains spaces', async () => { + const subfolder = 'sub folder'; + + await expect(uploadModel({ importPath, file, subfolder, maxAllowedFileSize })).rejects.toThrow( + new Error('Subfolder cannot contain spaces'), + ); + }); + it('should not make a request if no file is provided', async () => { await uploadModel({ importPath });