diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.test.ts b/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.test.ts index b9c481957c..2b59775d3a 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.test.ts +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.test.ts @@ -36,6 +36,11 @@ describe('RepoPicker Validation', () => { host: 'server.bitbucket.com', }, ], + azure: [ + { + host: 'dev.azure.com', + }, + ], github: [ { host: 'github.com', @@ -201,4 +206,59 @@ describe('RepoPicker Validation', () => { 'Incomplete repository location provided, repo not provided', ); }); + + it('validates properly with proper input for azure', () => { + const mockFieldValidation = fieldValidator(); + + repoPickerValidation( + 'dev.azure.com?project=a&repo=b', + mockFieldValidation, + { + apiHolder: apiHolderMock, + }, + ); + + expect(mockFieldValidation.addError).not.toHaveBeenCalled(); + }); + + it('validates when no project or repo provided for azure', () => { + const mockFieldValidation = fieldValidator(); + + repoPickerValidation('dev.azure.com', mockFieldValidation, { + apiHolder: apiHolderMock, + }); + + expect(mockFieldValidation.addError).toHaveBeenNthCalledWith( + 1, + 'Incomplete repository location provided, project not provided', + ); + expect(mockFieldValidation.addError).toHaveBeenNthCalledWith( + 2, + 'Incomplete repository location provided, repo not provided', + ); + }); + + it('validates when no project provided for azure', () => { + const mockFieldValidation = fieldValidator(); + + repoPickerValidation('dev.azure.com?repo=r', mockFieldValidation, { + apiHolder: apiHolderMock, + }); + + expect(mockFieldValidation.addError).toHaveBeenCalledWith( + 'Incomplete repository location provided, project not provided', + ); + }); + + it('validates when no repo provided for azure', () => { + const mockFieldValidation = fieldValidator(); + + repoPickerValidation('dev.azure.com?project=p', mockFieldValidation, { + apiHolder: apiHolderMock, + }); + + expect(mockFieldValidation.addError).toHaveBeenCalledWith( + 'Incomplete repository location provided, repo not provided', + ); + }); });