diff options
author | Jeremy Davis <jeremy.davis@sonarsource.com> | 2019-05-27 11:33:34 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2019-05-29 20:21:14 +0200 |
commit | 30edd004be7d356a446735766d7edb9c4ef6cbc1 (patch) | |
tree | 5a9513ae0bef8e0f5f3f0e8c5a81b8a559cd9d78 /server | |
parent | 18f20eed6127994e54d2fcc7f9772fdcafcfd25d (diff) | |
download | sonarqube-30edd004be7d356a446735766d7edb9c4ef6cbc1.tar.gz sonarqube-30edd004be7d356a446735766d7edb9c4ef6cbc1.zip |
SONAR-11676 Fix Bulk Apply Permission Template
Diffstat (limited to 'server')
4 files changed, 34 insertions, 5 deletions
diff --git a/server/sonar-web/src/main/js/apps/create/components/__tests__/ProjectKeyInput-test.tsx b/server/sonar-web/src/main/js/apps/create/components/__tests__/ProjectKeyInput-test.tsx index 4b47eaef943..14a4b9c33b0 100644 --- a/server/sonar-web/src/main/js/apps/create/components/__tests__/ProjectKeyInput-test.tsx +++ b/server/sonar-web/src/main/js/apps/create/components/__tests__/ProjectKeyInput-test.tsx @@ -59,3 +59,29 @@ it('should have an error when the key already exists', async () => { await new Promise(setImmediate); expect(wrapper.find('ValidationInput').prop('isInvalid')).toBe(true); }); + +it('should handle Change', async () => { + const onChange = jest.fn(); + const wrapper = shallow(<ProjectKeyInput onChange={onChange} value="" />); + await waitAndUpdate(wrapper); + + wrapper.find('input').simulate('change', { currentTarget: { value: 'key' } }); + + expect(wrapper.state('touched')).toBe(true); + expect(onChange).toBeCalledWith('key'); +}); + +it('should ignore promise return if value has been changed in the meantime', async () => { + const onChange = (value: string) => wrapper.setProps({ value }); + const wrapper = shallow(<ProjectKeyInput onChange={onChange} value="" />); + await waitAndUpdate(wrapper); + + wrapper.find('input').simulate('change', { currentTarget: { value: 'exists' } }); + wrapper.find('input').simulate('change', { currentTarget: { value: 'exists%' } }); + + jest.runAllTimers(); + await new Promise(setImmediate); + + expect(wrapper.state('touched')).toBe(true); + expect(wrapper.state('error')).toBe('onboarding.create_project.project_key.error'); +}); diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx index 495fe5e077d..e3c32aa20e4 100644 --- a/server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx +++ b/server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx @@ -88,6 +88,7 @@ export default class BulkApplyTemplateModal extends React.PureComponent<Props, S ? { organization: this.props.organization, projects: this.props.selection.join(), + qualifiers: this.props.qualifier, templateId: permissionTemplate } : { diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/BulkApplyTemplateModal-test.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/BulkApplyTemplateModal-test.tsx index b4670b17885..0cfec7a9349 100644 --- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/BulkApplyTemplateModal-test.tsx +++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/BulkApplyTemplateModal-test.tsx @@ -71,7 +71,7 @@ it('bulk applies template to all results', async () => { }); it('bulk applies template to selected results', async () => { - const wrapper = shallow(render({ selection: ['proj1', 'proj2'] })); + const wrapper = shallow(render({ qualifier: 'VW', selection: ['proj1', 'proj2'] })); (wrapper.instance() as BulkApplyTemplateModal).mounted = true; expect(wrapper).toMatchSnapshot(); @@ -88,6 +88,7 @@ it('bulk applies template to selected results', async () => { expect(bulkApplyTemplate).toBeCalledWith({ organization: 'org', projects: 'proj1,proj2', + qualifiers: 'VW', templateId: 'foo' }); diff --git a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx index 9a8a57bf77d..3b3eb4786da 100644 --- a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx +++ b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx @@ -73,8 +73,9 @@ export default class SourceViewerHeader extends React.PureComponent<Props, State renderIssueMeasures = () => { const { branchLike, issues, sourceViewerFile } = this.props; - if (issues && issues.length > 0) { - return ( + return ( + issues && + issues.length > 0 && ( <> <div className="source-viewer-header-measure-separator" /> @@ -101,8 +102,8 @@ export default class SourceViewerHeader extends React.PureComponent<Props, State ); })} </> - ); - } + ) + ); }; render() { |