From b61f2e843c6e1e72a7f1a987b53bd9921eaa69cf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gr=C3=A9goire=20Aubert?= Date: Fri, 28 Apr 2017 15:20:45 +0200 Subject: [PATCH] SONAR-8975 Fix extensions links when having more than one extension --- .../nav/component/ComponentNavMenu.js | 4 +- .../__tests__/ComponentNavMenu-test.js | 22 +- .../ComponentNavMenu-test.js.snap | 274 ++++++++++++++++++ 3 files changed, 295 insertions(+), 5 deletions(-) diff --git a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMenu.js b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMenu.js index 0b5327f5513..eb43936221b 100644 --- a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMenu.js +++ b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMenu.js @@ -302,7 +302,7 @@ export default class ComponentNavMenu extends React.PureComponent { ); } - renderExtension = ({ key, name }, isAdmin = false) => { + renderExtension = ({ key, name }, isAdmin) => { const pathname = isAdmin ? `/project/admin/extension/${key}` : `/project/extension/${key}`; return (
  • @@ -336,7 +336,7 @@ export default class ComponentNavMenu extends React.PureComponent {
      - {withoutGovernance.map(this.renderExtension)} + {withoutGovernance.map(e => this.renderExtension(e, false))}
  • ); diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavMenu-test.js b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavMenu-test.js index 024f2a4a7a0..d1c1da6bc25 100644 --- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavMenu-test.js +++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavMenu-test.js @@ -24,12 +24,28 @@ import ComponentNavMenu from '../ComponentNavMenu'; it('should work with extensions', () => { const component = { key: 'foo', - qualifier: 'TRK' + qualifier: 'TRK', + extensions: [{ key: 'component-foo', name: 'ComponentFoo' }] }; const conf = { showSettings: true, extensions: [{ key: 'foo', name: 'Foo' }] }; - const wrapper = shallow(); - expect(wrapper).toMatchSnapshot(); + expect(shallow()).toMatchSnapshot(); +}); + +it('should work with multiple extensions', () => { + const component = { + key: 'foo', + qualifier: 'TRK', + extensions: [ + { key: 'component-foo', name: 'ComponentFoo' }, + { key: 'component-bar', name: 'ComponentBar' } + ] + }; + const conf = { + showSettings: true, + extensions: [{ key: 'foo', name: 'Foo' }, { key: 'bar', name: 'Bar' }] + }; + expect(shallow()).toMatchSnapshot(); }); diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMenu-test.js.snap b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMenu-test.js.snap index 2bc14b3ac35..9b9a24ab6fe 100644 --- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMenu-test.js.snap +++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMenu-test.js.snap @@ -163,5 +163,279 @@ exports[`should work with extensions 1`] = ` +
  • + + more +   + + +
      +
    • + + ComponentFoo + +
    • +
    +
  • + +`; + +exports[`should work with multiple extensions 1`] = ` +
      +
    • + + + +
    • +
    • + + issues.page + +
    • +
    • + + layout.measures + +
    • +
    • + + code.page + +
    • +
    • + + project_activity.page + +
    • +
    • + + layout.settings +   + + +
        +
      • + + project_settings.page + +
      • +
      • + + Foo + +
      • +
      • + + Bar + +
      • +
      • + + deletion.page + +
      • +
      +
    • +
    • + + more +   + + +
        +
      • + + ComponentFoo + +
      • +
      • + + ComponentBar + +
      • +
      +
    `; -- 2.39.5