]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-12004 Replace diamonds with full text
authorJeremy Davis <jeremy.davis@sonarsource.com>
Thu, 12 Aug 2021 16:11:10 +0000 (18:11 +0200)
committersonartech <sonartech@sonarsource.com>
Fri, 13 Aug 2021 20:03:54 +0000 (20:03 +0000)
20 files changed:
server/sonar-ui-common/components/icons/ProjectEventIcon.tsx [deleted file]
server/sonar-web/src/main/js/apps/projectActivity/components/DefinitionChangeEventInner.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/Event.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/EventInner.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectOption.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectValue.tsx [deleted file]
server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityPageHeader.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/RichQualityGateEventInner.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/DefinitionChangeEventInner-test.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/RichQualityGateEventInner-test.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/DefinitionChangeEventInner-test.tsx.snap
server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/Event-test.tsx.snap
server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/EventInner-test.tsx.snap
server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityEventSelectOption-test.tsx.snap
server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityPageHeader-test.tsx.snap
server/sonar-web/src/main/js/components/activity-graph/GraphsTooltips.tsx
server/sonar-web/src/main/js/components/activity-graph/GraphsTooltipsContentEvents.tsx
server/sonar-web/src/main/js/components/activity-graph/__tests__/GraphsTooltips-test.tsx
server/sonar-web/src/main/js/components/activity-graph/__tests__/__snapshots__/GraphsTooltips-test.tsx.snap
server/sonar-web/src/main/js/components/activity-graph/__tests__/__snapshots__/GraphsTooltipsContentEvents-test.tsx.snap

diff --git a/server/sonar-ui-common/components/icons/ProjectEventIcon.tsx b/server/sonar-ui-common/components/icons/ProjectEventIcon.tsx
deleted file mode 100644 (file)
index 5ddba6b..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2021 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-import * as React from 'react';
-import Icon, { IconProps } from './Icon';
-
-export default function ProjectEventIcon({ fill = '#fff', size = 14, ...iconProps }: IconProps) {
-  return (
-    <Icon size={size} {...iconProps}>
-      <path
-        d="M8 2 L14 8 L8 14 L2 8 L8 2 L14 8"
-        style={{ fill, stroke: 'currentColor', strokeWidth: '2px' }}
-      />
-    </Icon>
-  );
-}
index d48b29e4e0cb10296f56786a55c0dc8a5e53f94c..f113cdb43b1a65f79d99673ede5bf79c825aaaa3 100644 (file)
@@ -20,7 +20,7 @@
 import * as React from 'react';
 import { FormattedMessage } from 'react-intl';
 import { Link } from 'react-router';
-import { ResetButtonLink } from 'sonar-ui-common/components/controls/buttons';
+import { ButtonLink } from 'sonar-ui-common/components/controls/buttons';
 import BranchIcon from 'sonar-ui-common/components/icons/BranchIcon';
 import DropdownIcon from 'sonar-ui-common/components/icons/DropdownIcon';
 import { translate } from 'sonar-ui-common/helpers/l10n';
@@ -39,6 +39,7 @@ export function isDefinitionChangeEvent(event: T.AnalysisEvent): event is Defini
 interface Props {
   branchLike: BranchLike | undefined;
   event: DefinitionChangeEvent;
+  readonly?: boolean;
 }
 
 interface State {
@@ -131,21 +132,26 @@ export class DefinitionChangeEventInner extends React.PureComponent<Props, State
   }
 
   render() {
-    const { event } = this.props;
+    const { event, readonly } = this.props;
     const { expanded } = this.state;
     return (
       <>
-        <span className="note">{translate('event.category', event.category)}:</span>
+        <span className="note">
+          {translate('event.category', event.category)}
+          {!readonly && ':'}
+        </span>
 
-        <div>
-          <ResetButtonLink
-            className="project-activity-event-inner-more-link"
-            onClick={this.toggleProjectsList}
-            stopPropagation={true}>
-            {expanded ? translate('hide') : translate('more')}
-            <DropdownIcon className="little-spacer-left" turned={expanded} />
-          </ResetButtonLink>
-        </div>
+        {!readonly && (
+          <div>
+            <ButtonLink
+              className="project-activity-event-inner-more-link"
+              onClick={this.toggleProjectsList}
+              stopPropagation={true}>
+              {expanded ? translate('hide') : translate('more')}
+              <DropdownIcon className="little-spacer-left" turned={expanded} />
+            </ButtonLink>
+          </div>
+        )}
 
         {expanded && (
           <ul className="spacer-left spacer-top">
index 1a2b2969ed5e7f93f52eea51f9d601aeff9bb28e..ea173aa741f16721a689ae9c25b0fc4fb1e21554 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import * as classNames from 'classnames';
 import * as React from 'react';
 import { DeleteButton, EditButton } from 'sonar-ui-common/components/controls/buttons';
-import ProjectEventIcon from 'sonar-ui-common/components/icons/ProjectEventIcon';
 import { translate } from 'sonar-ui-common/helpers/l10n';
 import EventInner from './EventInner';
 import ChangeEventForm from './forms/ChangeEventForm';
@@ -49,13 +47,6 @@ export function Event(props: EventProps) {
 
   return (
     <div className="project-activity-event">
-      <ProjectEventIcon
-        className={classNames(
-          'project-activity-event-icon little-spacer-right text-middle',
-          event.category
-        )}
-      />
-
       <EventInner event={event} />
 
       {showActions && (
index c0626d6e216123fcf1afbb54d7c716973204211a..94cfb31e6d4ddbd96653dad8dfd2c3302dcae5a9 100644 (file)
@@ -26,26 +26,30 @@ import { isRichQualityGateEvent, RichQualityGateEventInner } from './RichQuality
 
 export interface EventInnerProps {
   event: T.AnalysisEvent;
+  readonly?: boolean;
 }
 
-export default function EventInner({ event }: EventInnerProps) {
+export default function EventInner({ event, readonly }: EventInnerProps) {
   if (isRichQualityGateEvent(event)) {
-    return <RichQualityGateEventInner event={event} />;
+    return <RichQualityGateEventInner event={event} readonly={readonly} />;
   } else if (isDefinitionChangeEvent(event)) {
     return (
       <ComponentContext.Consumer>
-        {({ branchLike }) => <DefinitionChangeEventInner branchLike={branchLike} event={event} />}
+        {({ branchLike }) => (
+          <DefinitionChangeEventInner branchLike={branchLike} event={event} readonly={readonly} />
+        )}
       </ComponentContext.Consumer>
     );
-  } else {
-    const content = (
+  }
+
+  return (
+    <Tooltip overlay={event.description || null}>
       <span className="text-middle">
         <span className="note little-spacer-right">
           {translate('event.category', event.category)}:
         </span>
         <strong className="spacer-right">{event.name}</strong>
       </span>
-    );
-    return event.description ? <Tooltip overlay={event.description}>{content}</Tooltip> : content;
-  }
+    </Tooltip>
+  );
 }
index 36df66bec452f5d0432f943017288c0ebbf3b2d5..f8b87019da1951fff9fac9ffc656fbd5c015c4ed 100644 (file)
@@ -18,7 +18,6 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import * as React from 'react';
-import ProjectEventIcon from 'sonar-ui-common/components/icons/ProjectEventIcon';
 
 export interface Option {
   label: string;
@@ -63,8 +62,7 @@ export default class ProjectActivityEventSelectOption extends React.PureComponen
         role="link"
         tabIndex={0}
         title={option.label}>
-        <ProjectEventIcon className={'project-activity-event-icon ' + option.value} />
-        <span className="little-spacer-left">{this.props.children}</span>
+        {this.props.children}
       </div>
     );
   }
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectValue.tsx b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectValue.tsx
deleted file mode 100644 (file)
index 4f70a29..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2021 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-import * as React from 'react';
-import ProjectEventIcon from 'sonar-ui-common/components/icons/ProjectEventIcon';
-import { Option } from './ProjectActivityEventSelectOption';
-
-interface Props {
-  children?: React.ReactNode;
-  value: Option;
-}
-
-export default function ProjectActivityEventSelectValue({ children, value }: Props) {
-  return (
-    <div className="Select-value" title={value.label}>
-      <div className="Select-value-label">
-        <ProjectEventIcon className={'project-activity-event-icon ' + value.value} />
-        <span className="little-spacer-left">{children}</span>
-      </div>
-    </div>
-  );
-}
index 0dac0e2fb19af09d0ddbc85c879871c9d113bc64..81b1a278dbf485e85b4c03eab81accf74f30d8c3 100644 (file)
@@ -24,7 +24,6 @@ import { translate } from 'sonar-ui-common/helpers/l10n';
 import { APPLICATION_EVENT_TYPES, EVENT_TYPES, Query } from '../utils';
 import ProjectActivityDateInput from './ProjectActivityDateInput';
 import ProjectActivityEventSelectOption from './ProjectActivityEventSelectOption';
-import ProjectActivityEventSelectValue from './ProjectActivityEventSelectValue';
 
 interface Props {
   category?: string;
@@ -61,8 +60,6 @@ export default class ProjectActivityPageHeader extends React.PureComponent<Props
             placeholder={translate('project_activity.filter_events') + '...'}
             searchable={false}
             value={this.props.category}
-            // @ts-ignore react-select typings are incorrect, they expect `props` of `valueComponent` to be exactly `Option`
-            valueComponent={ProjectActivityEventSelectValue}
           />
         )}
         <ProjectActivityDateInput
index 69edce2b3fa442826b5d7882e3aa7e1422897123..cf9590db0f4e0c133eefe756da0e7e75f269cd42 100644 (file)
@@ -34,6 +34,7 @@ export function isRichQualityGateEvent(event: T.AnalysisEvent): event is RichQua
 
 interface Props {
   event: RichQualityGateEvent;
+  readonly?: boolean;
 }
 
 interface State {
@@ -52,7 +53,7 @@ export class RichQualityGateEventInner extends React.PureComponent<Props, State>
   };
 
   render() {
-    const { event } = this.props;
+    const { event, readonly } = this.props;
     const { expanded } = this.state;
     return (
       <>
@@ -68,7 +69,7 @@ export class RichQualityGateEventInner extends React.PureComponent<Props, State>
         )}
 
         <div>
-          {event.qualityGate.failing.length > 0 && (
+          {!readonly && event.qualityGate.failing.length > 0 && (
             <ResetButtonLink
               className="project-activity-event-inner-more-link"
               onClick={this.toggleProjectsList}
index d22d5e1abf88a6bd88aa6c3fcea80cc55dcbbe7a..e5496e85a2593c2443adfccd69c05db80d76f576 100644 (file)
@@ -67,3 +67,22 @@ it('should render for a branch', () => {
   wrapper.update();
   expect(wrapper).toMatchSnapshot();
 });
+
+it('should render when readonly', () => {
+  const event: DefinitionChangeEvent = {
+    category: 'DEFINITION_CHANGE',
+    key: 'foo1234',
+    name: '',
+    definitionChange: {
+      projects: [
+        { changeType: 'ADDED', key: 'foo', name: 'Foo', branch: 'master' },
+        { changeType: 'REMOVED', key: 'bar', name: 'Bar', branch: 'master' }
+      ]
+    }
+  };
+  const wrapper = shallow(
+    <DefinitionChangeEventInner branchLike={undefined} event={event} readonly={true} />
+  );
+  expect(wrapper).toMatchSnapshot();
+  expect(wrapper.find('.project-activity-event-inner-more-link').exists()).toBe(false);
+});
index 269e32800a7b931d8e562eb661cf92016b31d6e4..f6d570a57db98a2c33948f34b9e9fbbfd0da04e3 100644 (file)
@@ -53,3 +53,8 @@ it('should not expand', () => {
   );
   expect(wrapper.find('.project-activity-event-inner-more-link').exists()).toBe(false);
 });
+
+it('should not expand when readonly', () => {
+  const wrapper = shallow(<RichQualityGateEventInner event={event} readonly={true} />);
+  expect(wrapper.find('.project-activity-event-inner-more-link').exists()).toBe(false);
+});
index e4c0559e8cd2ee29149ceaa08104b179975e71c9..d76718a77e4ce8dc4592c01f824c49a8f7e4676d 100644 (file)
@@ -9,7 +9,7 @@ exports[`should render 1`] = `
     :
   </span>
   <div>
-    <ResetButtonLink
+    <ButtonLink
       className="project-activity-event-inner-more-link"
       onClick={[Function]}
       stopPropagation={true}
@@ -19,7 +19,7 @@ exports[`should render 1`] = `
         className="little-spacer-left"
         turned={false}
       />
-    </ResetButtonLink>
+    </ButtonLink>
   </div>
 </Fragment>
 `;
@@ -33,7 +33,7 @@ exports[`should render 2`] = `
     :
   </span>
   <div>
-    <ResetButtonLink
+    <ButtonLink
       className="project-activity-event-inner-more-link"
       onClick={[Function]}
       stopPropagation={true}
@@ -43,7 +43,7 @@ exports[`should render 2`] = `
         className="little-spacer-left"
         turned={true}
       />
-    </ResetButtonLink>
+    </ButtonLink>
   </div>
   <ul
     className="spacer-left spacer-top"
@@ -147,7 +147,7 @@ exports[`should render for a branch 1`] = `
     :
   </span>
   <div>
-    <ResetButtonLink
+    <ButtonLink
       className="project-activity-event-inner-more-link"
       onClick={[Function]}
       stopPropagation={true}
@@ -157,7 +157,7 @@ exports[`should render for a branch 1`] = `
         className="little-spacer-left"
         turned={true}
       />
-    </ResetButtonLink>
+    </ButtonLink>
   </div>
   <ul
     className="spacer-left spacer-top"
@@ -256,3 +256,13 @@ exports[`should render for a branch 1`] = `
   </ul>
 </Fragment>
 `;
+
+exports[`should render when readonly 1`] = `
+<Fragment>
+  <span
+    className="note"
+  >
+    event.category.DEFINITION_CHANGE
+  </span>
+</Fragment>
+`;
index d3e5f562c6e538e9a919aef70b63a42ff51d90f9..196deed213a1a54fc36b7ca064a72bb1bcfaa6e7 100644 (file)
@@ -4,9 +4,6 @@ exports[`should render correctly: default 1`] = `
 <div
   className="project-activity-event"
 >
-  <ProjectEventIcon
-    className="project-activity-event-icon little-spacer-right text-middle OTHER"
-  />
   <EventInner
     event={
       Object {
@@ -40,9 +37,6 @@ exports[`should render correctly: with admin options 1`] = `
 <div
   className="project-activity-event"
 >
-  <ProjectEventIcon
-    className="project-activity-event-icon little-spacer-right text-middle OTHER"
-  />
   <EventInner
     event={
       Object {
index cd7db05bd529fdf3bb5c80ac025a9c86bc24d053..639a2bb4f5d0fb14620149e419fc41ac30b9db9f 100644 (file)
@@ -54,21 +54,25 @@ exports[`should render correctly: definition change 1`] = `
 `;
 
 exports[`should render correctly: no description 1`] = `
-<span
-  className="text-middle"
+<Tooltip
+  overlay={null}
 >
   <span
-    className="note little-spacer-right"
+    className="text-middle"
   >
-    event.category.VERSION
-    :
+    <span
+      className="note little-spacer-right"
+    >
+      event.category.VERSION
+      :
+    </span>
+    <strong
+      className="spacer-right"
+    >
+      Lorem ipsum
+    </strong>
   </span>
-  <strong
-    className="spacer-right"
-  >
-    Lorem ipsum
-  </strong>
-</span>
+</Tooltip>
 `;
 
 exports[`should render correctly: rich quality gate 1`] = `
index a31966320b746e8c7a712f7391b1cc72edf91ca8..9667ac493375642eb83394c0319fb23704dd6dde 100644 (file)
@@ -8,12 +8,5 @@ exports[`should render correctly 1`] = `
   role="link"
   tabIndex={0}
   title="Foo"
->
-  <ProjectEventIcon
-    className="project-activity-event-icon foo"
-  />
-  <span
-    className="little-spacer-left"
-  />
-</div>
+/>
 `;
index b114a57e84a737d875bd44ba2382f69302930100..32cb3bbb30f89cfe632a507d665b9e16e8683d0c 100644 (file)
@@ -32,7 +32,6 @@ exports[`should render correctly the list of series 1`] = `
     placeholder="project_activity.filter_events..."
     searchable={false}
     value=""
-    valueComponent={[Function]}
   />
   <ProjectActivityDateInput
     from={2016-10-27T10:21:15.000Z}
index db261e224446764267e3797f3be3d318387e4e72..283b0f837967f061f579d2e81e007a6ee15c7d51 100644 (file)
@@ -99,6 +99,9 @@ export default class GraphsTooltips extends React.PureComponent<Props> {
             <DateTimeFormatter date={this.props.selectedDate} />
           </div>
           <table className="width-100">
+            {events && events.length > 0 && (
+              <GraphsTooltipsContentEvents addSeparator={addSeparator} events={events} />
+            )}
             <tbody>{tooltipContent}</tbody>
             {this.props.graph === 'coverage' && (
               <GraphsTooltipsContentCoverage
@@ -114,9 +117,6 @@ export default class GraphsTooltips extends React.PureComponent<Props> {
                 tooltipIdx={tooltipIdx}
               />
             )}
-            {events && events.length > 0 && (
-              <GraphsTooltipsContentEvents addSeparator={addSeparator} events={events} />
-            )}
           </table>
         </div>
       </Popup>
index 3d59c88202a43641ed143ab83d098f9891d4c26d..98c07f2dc2c6640f40b18c2956deb370f49c0cf6 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import classNames from 'classnames';
 import * as React from 'react';
-import ProjectEventIcon from 'sonar-ui-common/components/icons/ProjectEventIcon';
-import { translate } from 'sonar-ui-common/helpers/l10n';
+import EventInner from '../../apps/projectActivity/components/EventInner';
 
 interface Props {
   addSeparator: boolean;
@@ -39,16 +37,20 @@ export default function GraphsTooltipsContentEvents({ addSeparator, events }: Pr
       )}
       <tr className="activity-graph-tooltip-line">
         <td colSpan={3}>
-          <span>{translate('events')}:</span>
           {events.map(event => (
-            <span className="spacer-left" key={event.key}>
-              <ProjectEventIcon
-                className={classNames('project-activity-event-icon', event.category)}
-              />
-            </span>
+            <div className="little-spacer-bottom" key={event.key}>
+              <EventInner event={event} readonly={true} />
+            </div>
           ))}
         </td>
       </tr>
+      {addSeparator && (
+        <tr>
+          <td className="activity-graph-tooltip-separator" colSpan={3}>
+            <hr />
+          </td>
+        </tr>
+      )}
     </tbody>
   );
 }
index 98d8bf9d83c8c4c3179a0d708a0d69fcaae52bba..2461b3a65137677cf9c560d25b56d146767d6959 100644 (file)
@@ -21,6 +21,7 @@
 import { shallow } from 'enzyme';
 import * as React from 'react';
 import { parseDate } from 'sonar-ui-common/helpers/dates';
+import { mockEvent } from '../../../helpers/testMocks';
 import GraphsTooltips from '../GraphsTooltips';
 import { DEFAULT_GRAPH } from '../utils';
 
@@ -86,6 +87,9 @@ const DEFAULT_PROPS: GraphsTooltips['props'] = {
 
 it('should render correctly for issues graphs', () => {
   expect(shallow(<GraphsTooltips {...DEFAULT_PROPS} />)).toMatchSnapshot();
+  expect(shallow(<GraphsTooltips {...DEFAULT_PROPS} events={[mockEvent()]} />)).toMatchSnapshot(
+    'with events'
+  );
 });
 
 it('should render correctly for random graphs', () => {
index d90007b9ca1591da2bdef75c71357e71ebac54ec..c3183f63400dbcc22dc9f7abf0a95231e28dbb8d 100644 (file)
@@ -95,6 +95,82 @@ exports[`should render correctly for issues graphs 1`] = `
 </Popup>
 `;
 
+exports[`should render correctly for issues graphs: with events 1`] = `
+<Popup
+  className="disabled-pointer-events"
+  placement="left-top"
+  style={
+    Object {
+      "left": 476,
+      "top": 30,
+      "width": 250,
+    }
+  }
+>
+  <div
+    className="activity-graph-tooltip"
+  >
+    <div
+      className="activity-graph-tooltip-title spacer-bottom"
+    >
+      <DateTimeFormatter
+        date={2011-10-01T22:01:00.000Z}
+      />
+    </div>
+    <table
+      className="width-100"
+    >
+      <GraphsTooltipsContentEvents
+        addSeparator={true}
+        events={
+          Array [
+            Object {
+              "currentTarget": Object {
+                "blur": [Function],
+              },
+              "preventDefault": [Function],
+              "stopPropagation": [Function],
+              "target": Object {
+                "blur": [Function],
+              },
+            },
+          ]
+        }
+      />
+      <tbody>
+        <GraphsTooltipsContentIssues
+          index={0}
+          key="bugs"
+          measuresHistory={Array []}
+          name="bugs"
+          tooltipIdx={0}
+          translatedName="Bugs"
+          value="Formated.3"
+        />
+        <GraphsTooltipsContentIssues
+          index={1}
+          key="code_smells"
+          measuresHistory={Array []}
+          name="code_smells"
+          tooltipIdx={0}
+          translatedName="Code Smells"
+          value="Formated.18"
+        />
+        <GraphsTooltipsContentIssues
+          index={2}
+          key="vulnerabilities"
+          measuresHistory={Array []}
+          name="vulnerabilities"
+          tooltipIdx={0}
+          translatedName="Vulnerabilities"
+          value="Formated.0"
+        />
+      </tbody>
+    </table>
+  </div>
+</Popup>
+`;
+
 exports[`should render correctly for random graphs 1`] = `
 <Popup
   className="disabled-pointer-events"
index b77d2327dace0be09dcd4975ec5baaa913a60b3b..c4297a01b3d64ed4f0bad2a3fba6c0c843bd1e24 100644 (file)
@@ -16,26 +16,44 @@ exports[`should render correctly 1`] = `
     <td
       colSpan={3}
     >
-      <span>
-        events
-        :
-      </span>
-      <span
-        className="spacer-left"
+      <div
+        className="little-spacer-bottom"
         key="1"
       >
-        <ProjectEventIcon
-          className="project-activity-event-icon VERSION"
+        <EventInner
+          event={
+            Object {
+              "category": "VERSION",
+              "key": "1",
+              "name": "6.5",
+            }
+          }
+          readonly={true}
         />
-      </span>
-      <span
-        className="spacer-left"
+      </div>
+      <div
+        className="little-spacer-bottom"
         key="2"
       >
-        <ProjectEventIcon
-          className="project-activity-event-icon OTHER"
+        <EventInner
+          event={
+            Object {
+              "category": "OTHER",
+              "key": "2",
+              "name": "Foo",
+            }
+          }
+          readonly={true}
         />
-      </span>
+      </div>
+    </td>
+  </tr>
+  <tr>
+    <td
+      className="activity-graph-tooltip-separator"
+      colSpan={3}
+    >
+      <hr />
     </td>
   </tr>
 </tbody>