]> source.dussan.org Git - sonarqube.git/commitdiff
update react to 16.2.0, use react fragments
authorStas Vilchik <stas.vilchik@sonarsource.com>
Tue, 12 Dec 2017 09:58:10 +0000 (10:58 +0100)
committerStas Vilchik <stas.vilchik@sonarsource.com>
Fri, 15 Dec 2017 13:25:12 +0000 (14:25 +0100)
20 files changed:
server/sonar-web/package.json
server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBranchesMenu.tsx
server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMeta.tsx
server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenu-test.tsx.snap
server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap
server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap
server/sonar-web/src/main/js/apps/projects/components/PageSidebar.tsx
server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PageSidebar-test.tsx.snap
server/sonar-web/src/main/js/apps/projectsManagement/ProjectRowActions.tsx
server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/ProjectRowActions-test.tsx.snap
server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx
server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap
server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap
server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/OrganizationStep-test.js.snap
server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/TokenStep-test.js.snap
server/sonar-web/src/main/js/apps/users/components/UserActions.tsx
server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UserActions-test.tsx.snap
server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap
server/sonar-web/yarn.lock

index 1ba78887fc81f51ee3543bf1a8e00da949c29bc3..1610cd1f0bf9d2362a81c5665f98ff2b92e00dcd 100644 (file)
@@ -26,8 +26,8 @@
     "lodash": "4.17.4",
     "prop-types": "15.6.0",
     "rc-tooltip": "3.5.0",
-    "react": "16.0.0",
-    "react-dom": "16.0.0",
+    "react": "16.2.0",
+    "react-dom": "16.2.0",
     "react-draggable": "3.0.3",
     "react-helmet": "5.2.0",
     "react-intl": "2.4.0",
     "@types/clipboard": "1.5.35",
     "@types/d3-array": "1.2.1",
     "@types/d3-scale": "1.0.10",
-    "@types/enzyme": "3.1.1",
+    "@types/enzyme": "3.1.5",
     "@types/escape-html": "0.0.20",
-    "@types/jest": "21.1.5",
+    "@types/jest": "21.1.8",
     "@types/jquery": "3.2.11",
     "@types/lodash": "4.14.80",
     "@types/prop-types": "15.5.2",
-    "@types/react": "16.0.19",
-    "@types/react-dom": "16.0.2",
+    "@types/react": "16.0.29",
+    "@types/react-dom": "16.0.3",
     "@types/react-helmet": "5.0.3",
     "@types/react-intl": "2.3.2",
     "@types/react-modal": "2.2.2",
@@ -77,9 +77,9 @@
     "babel-preset-react": "^6.22.0",
     "chalk": "2.3.0",
     "css-loader": "0.28.7",
-    "enzyme": "3.1.0",
-    "enzyme-adapter-react-16": "1.0.2",
-    "enzyme-to-json": "3.1.4",
+    "enzyme": "3.2.0",
+    "enzyme-adapter-react-16": "1.1.0",
+    "enzyme-to-json": "3.3.0",
     "eslint": "4.9.0",
     "eslint-plugin-import": "2.8.0",
     "eslint-plugin-jsx-a11y": "6.0.2",
@@ -98,7 +98,7 @@
     "postcss-loader": "2.0.8",
     "prettier": "1.7.4",
     "react-error-overlay": "1.0.7",
-    "react-test-renderer": "16.0.0",
+    "react-test-renderer": "16.2.0",
     "rimraf": "2.6.2",
     "style-loader": "0.19.0",
     "ts-jest": "21.1.4",
index 07f7e0508cdf68ea7f3d20762d715e3eb6330b0d..df39999d1497862ed64657646c1e9c7bea368ef5 100644 (file)
@@ -166,36 +166,35 @@ export default class ComponentNavBranchesMenu extends React.PureComponent<Props,
       return <div className="menu-message note">{translate('no_results')}</div>;
     }
 
-    const menu: JSX.Element[] = [];
-    branches.forEach((branch, index) => {
+    const items = branches.map((branch, index) => {
       const isOrphan = isShortLivingBranch(branch) && branch.isOrphan;
       const previous = index > 0 ? branches[index - 1] : null;
       const isPreviousOrphan = isShortLivingBranch(previous) ? previous.isOrphan : false;
-      if (isLongLivingBranch(branch) || (isOrphan && !isPreviousOrphan)) {
-        menu.push(<li key={`divider-${branch.name}`} className="divider" />);
-      }
-      if (isOrphan && !isPreviousOrphan) {
-        menu.push(
-          <li className="dropdown-header" key="orphans">
-            {translate('branches.orphan_branches')}
-            <Tooltip overlay={translate('branches.orphan_branches.tooltip')}>
-              <i className="icon-help spacer-left" />
-            </Tooltip>
-          </li>
-        );
-      }
-      menu.push(
-        <ComponentNavBranchesMenuItem
-          branch={branch}
-          component={this.props.component}
-          key={branch.name}
-          onSelect={this.handleSelect}
-          selected={branch.name === selected}
-        />
+      const showDivider = isLongLivingBranch(branch) || (isOrphan && !isPreviousOrphan);
+      const showOrphanHeader = isOrphan && !isPreviousOrphan;
+      return (
+        <React.Fragment key={branch.name}>
+          {showDivider && <li className="divider" />}
+          {showOrphanHeader && (
+            <li className="dropdown-header">
+              {translate('branches.orphan_branches')}
+              <Tooltip overlay={translate('branches.orphan_branches.tooltip')}>
+                <i className="icon-help spacer-left" />
+              </Tooltip>
+            </li>
+          )}
+          <ComponentNavBranchesMenuItem
+            branch={branch}
+            component={this.props.component}
+            key={branch.name}
+            onSelect={this.handleSelect}
+            selected={branch.name === selected}
+          />
+        </React.Fragment>
       );
     });
 
-    return <ul className="menu menu-vertically-limited">{menu}</ul>;
+    return <ul className="menu menu-vertically-limited">{items}</ul>;
   };
 
   render() {
index 1a2b4bd1cd85b021e11798cb706a338dc6a1e8c9..0e157ebe2194c2f9cb02291671c49c668431d17d 100644 (file)
@@ -31,34 +31,29 @@ interface Props {
 }
 
 export default function ComponentNavMeta(props: Props) {
-  const metaList = [];
   const shortBranch = props.branch && isShortLivingBranch(props.branch);
-
-  if (props.component.analysisDate) {
-    metaList.push(
-      <li key="analysisDate">
-        <DateTimeFormatter date={props.component.analysisDate} />
-      </li>
-    );
-  }
-
-  if (props.component.version && !shortBranch) {
-    metaList.push(
-      <li key="version">
-        <Tooltip
-          overlay={`${translate('version')} ${props.component.version}`}
-          mouseEnterDelay={0.5}>
-          <span className="text-limited">
-            {translate('version')} {props.component.version}
-          </span>
-        </Tooltip>
-      </li>
-    );
-  }
+  const showVersion = props.component.version && !shortBranch;
 
   return (
     <div className="navbar-context-meta">
-      <ul className="list-inline">{metaList}</ul>
+      <ul className="list-inline">
+        {props.component.analysisDate && (
+          <li>
+            <DateTimeFormatter date={props.component.analysisDate} />
+          </li>
+        )}
+        {showVersion && (
+          <li>
+            <Tooltip
+              overlay={`${translate('version')} ${props.component.version}`}
+              mouseEnterDelay={0.5}>
+              <span className="text-limited">
+                {translate('version')} {props.component.version}
+              </span>
+            </Tooltip>
+          </li>
+        )}
+      </ul>
       {shortBranch && (
         <div className="navbar-context-meta-branch">
           <BranchStatus branch={props.branch!} />
index 6f39c721b9d871f449cdc49b3674b6eba7c53a45..6946e02b328f2b4c0c40631509c95a3e47dddeb7 100644 (file)
@@ -18,151 +18,166 @@ exports[`renders list 1`] = `
   <ul
     className="menu menu-vertically-limited"
   >
-    <ComponentNavBranchesMenuItem
-      branch={
-        Object {
-          "isMain": true,
-          "name": "master",
-        }
-      }
-      component={
-        Object {
-          "key": "component",
-        }
-      }
+    <React.Fragment
       key="master"
-      onSelect={[Function]}
-      selected={true}
-    />
-    <li
-      className="divider"
-      key="divider-baz"
-    />
-    <li
-      className="dropdown-header"
-      key="orphans"
     >
-      branches.orphan_branches
-      <Tooltip
-        overlay="branches.orphan_branches.tooltip"
-        placement="bottom"
-      >
-        <i
-          className="icon-help spacer-left"
-        />
-      </Tooltip>
-    </li>
-    <ComponentNavBranchesMenuItem
-      branch={
-        Object {
-          "isMain": false,
-          "isOrphan": true,
-          "mergeBranch": "master",
-          "name": "baz",
-          "status": Object {
-            "bugs": 0,
-            "codeSmells": 0,
-            "vulnerabilities": 0,
-          },
-          "type": "SHORT",
+      <ComponentNavBranchesMenuItem
+        branch={
+          Object {
+            "isMain": true,
+            "name": "master",
+          }
         }
-      }
-      component={
-        Object {
-          "key": "component",
+        component={
+          Object {
+            "key": "component",
+          }
         }
-      }
+        key="master"
+        onSelect={[Function]}
+        selected={true}
+      />
+    </React.Fragment>
+    <React.Fragment
       key="baz"
-      onSelect={[Function]}
-      selected={false}
-    />
-    <ComponentNavBranchesMenuItem
-      branch={
-        Object {
-          "isMain": false,
-          "isOrphan": undefined,
-          "mergeBranch": "master",
-          "name": "foo",
-          "status": Object {
-            "bugs": 0,
-            "codeSmells": 0,
-            "vulnerabilities": 0,
-          },
-          "type": "SHORT",
+    >
+      <li
+        className="divider"
+      />
+      <li
+        className="dropdown-header"
+      >
+        branches.orphan_branches
+        <Tooltip
+          overlay="branches.orphan_branches.tooltip"
+          placement="bottom"
+        >
+          <i
+            className="icon-help spacer-left"
+          />
+        </Tooltip>
+      </li>
+      <ComponentNavBranchesMenuItem
+        branch={
+          Object {
+            "isMain": false,
+            "isOrphan": true,
+            "mergeBranch": "master",
+            "name": "baz",
+            "status": Object {
+              "bugs": 0,
+              "codeSmells": 0,
+              "vulnerabilities": 0,
+            },
+            "type": "SHORT",
+          }
         }
-      }
-      component={
-        Object {
-          "key": "component",
+        component={
+          Object {
+            "key": "component",
+          }
         }
-      }
+        key="baz"
+        onSelect={[Function]}
+        selected={false}
+      />
+    </React.Fragment>
+    <React.Fragment
       key="foo"
-      onSelect={[Function]}
-      selected={false}
-    />
-    <li
-      className="divider"
-      key="divider-bar"
-    />
-    <ComponentNavBranchesMenuItem
-      branch={
-        Object {
-          "isMain": false,
-          "name": "bar",
-          "type": "LONG",
+    >
+      <ComponentNavBranchesMenuItem
+        branch={
+          Object {
+            "isMain": false,
+            "isOrphan": undefined,
+            "mergeBranch": "master",
+            "name": "foo",
+            "status": Object {
+              "bugs": 0,
+              "codeSmells": 0,
+              "vulnerabilities": 0,
+            },
+            "type": "SHORT",
+          }
         }
-      }
-      component={
-        Object {
-          "key": "component",
+        component={
+          Object {
+            "key": "component",
+          }
         }
-      }
+        key="foo"
+        onSelect={[Function]}
+        selected={false}
+      />
+    </React.Fragment>
+    <React.Fragment
       key="bar"
-      onSelect={[Function]}
-      selected={false}
-    />
-    <li
-      className="divider"
-      key="divider-baz"
-    />
-    <li
-      className="dropdown-header"
-      key="orphans"
     >
-      branches.orphan_branches
-      <Tooltip
-        overlay="branches.orphan_branches.tooltip"
-        placement="bottom"
-      >
-        <i
-          className="icon-help spacer-left"
-        />
-      </Tooltip>
-    </li>
-    <ComponentNavBranchesMenuItem
-      branch={
-        Object {
-          "isMain": false,
-          "isOrphan": true,
-          "mergeBranch": "master",
-          "name": "baz",
-          "status": Object {
-            "bugs": 0,
-            "codeSmells": 0,
-            "vulnerabilities": 0,
-          },
-          "type": "SHORT",
+      <li
+        className="divider"
+      />
+      <ComponentNavBranchesMenuItem
+        branch={
+          Object {
+            "isMain": false,
+            "name": "bar",
+            "type": "LONG",
+          }
         }
-      }
-      component={
-        Object {
-          "key": "component",
+        component={
+          Object {
+            "key": "component",
+          }
         }
-      }
+        key="bar"
+        onSelect={[Function]}
+        selected={false}
+      />
+    </React.Fragment>
+    <React.Fragment
       key="baz"
-      onSelect={[Function]}
-      selected={false}
-    />
+    >
+      <li
+        className="divider"
+      />
+      <li
+        className="dropdown-header"
+      >
+        branches.orphan_branches
+        <Tooltip
+          overlay="branches.orphan_branches.tooltip"
+          placement="bottom"
+        >
+          <i
+            className="icon-help spacer-left"
+          />
+        </Tooltip>
+      </li>
+      <ComponentNavBranchesMenuItem
+        branch={
+          Object {
+            "isMain": false,
+            "isOrphan": true,
+            "mergeBranch": "master",
+            "name": "baz",
+            "status": Object {
+              "bugs": 0,
+              "codeSmells": 0,
+              "vulnerabilities": 0,
+            },
+            "type": "SHORT",
+          }
+        }
+        component={
+          Object {
+            "key": "component",
+          }
+        }
+        key="baz"
+        onSelect={[Function]}
+        selected={false}
+      />
+    </React.Fragment>
   </ul>
 </div>
 `;
@@ -185,51 +200,58 @@ exports[`searches 1`] = `
   <ul
     className="menu menu-vertically-limited"
   >
-    <ComponentNavBranchesMenuItem
-      branch={
-        Object {
-          "isMain": false,
-          "isOrphan": undefined,
-          "mergeBranch": "master",
-          "name": "foobar",
-          "status": Object {
-            "bugs": 0,
-            "codeSmells": 0,
-            "vulnerabilities": 0,
-          },
-          "type": "SHORT",
-        }
-      }
-      component={
-        Object {
-          "key": "component",
-        }
-      }
+    <React.Fragment
       key="foobar"
-      onSelect={[Function]}
-      selected={true}
-    />
-    <li
-      className="divider"
-      key="divider-bar"
-    />
-    <ComponentNavBranchesMenuItem
-      branch={
-        Object {
-          "isMain": false,
-          "name": "bar",
-          "type": "LONG",
+    >
+      <ComponentNavBranchesMenuItem
+        branch={
+          Object {
+            "isMain": false,
+            "isOrphan": undefined,
+            "mergeBranch": "master",
+            "name": "foobar",
+            "status": Object {
+              "bugs": 0,
+              "codeSmells": 0,
+              "vulnerabilities": 0,
+            },
+            "type": "SHORT",
+          }
         }
-      }
-      component={
-        Object {
-          "key": "component",
+        component={
+          Object {
+            "key": "component",
+          }
         }
-      }
+        key="foobar"
+        onSelect={[Function]}
+        selected={true}
+      />
+    </React.Fragment>
+    <React.Fragment
       key="bar"
-      onSelect={[Function]}
-      selected={false}
-    />
+    >
+      <li
+        className="divider"
+      />
+      <ComponentNavBranchesMenuItem
+        branch={
+          Object {
+            "isMain": false,
+            "name": "bar",
+            "type": "LONG",
+          }
+        }
+        component={
+          Object {
+            "key": "component",
+          }
+        }
+        key="bar"
+        onSelect={[Function]}
+        selected={false}
+      />
+    </React.Fragment>
   </ul>
 </div>
 `;
index dea4abcd294842b52559ec01228e9c428d35c1b8..a1dd339dfce14c0256dc20b675311057231e92b7 100644 (file)
@@ -7,16 +7,12 @@ exports[`renders meta for long-living branch 1`] = `
   <ul
     className="list-inline"
   >
-    <li
-      key="analysisDate"
-    >
+    <li>
       <DateTimeFormatter
         date="2017-01-02T00:00:00.000Z"
       />
     </li>
-    <li
-      key="version"
-    >
+    <li>
       <Tooltip
         mouseEnterDelay={0.5}
         overlay="version 0.0.1"
@@ -42,9 +38,7 @@ exports[`renders status of short-living branch 1`] = `
   <ul
     className="list-inline"
   >
-    <li
-      key="analysisDate"
-    >
+    <li>
       <DateTimeFormatter
         date="2017-01-02T00:00:00.000Z"
       />
index 28442511ef41e833d1d7208adeb152f6114e0d8a..d384037257b435a180a2ce36f2ae73743c81547a 100644 (file)
@@ -14,7 +14,6 @@ exports[`should render 1`] = `
       active={false}
       disabled={false}
       halfWidth={false}
-      key=""
       name="unassigned"
       onClick={[Function]}
       stat="5"
@@ -101,7 +100,6 @@ exports[`should select unassigned 1`] = `
       active={true}
       disabled={false}
       halfWidth={false}
-      key=""
       name="unassigned"
       onClick={[Function]}
       stat="5"
@@ -164,7 +162,6 @@ exports[`should select user 1`] = `
       active={false}
       disabled={false}
       halfWidth={false}
-      key=""
       name="unassigned"
       onClick={[Function]}
       stat="5"
index 19c51033dacc2b4b8b6a01c50a175c1fb93334b0..d22864bc00624edbbbb4437febbc97ef66ccd0ae 100644 (file)
@@ -81,77 +81,70 @@ export default function PageSidebar(props: Props) {
         <h3>{translate('filters')}</h3>
       </div>
       <QualityGateFilter {...facetProps} facet={facets && facets.gate} value={query.gate} />
-      {!isLeakView && [
-        <ReliabilityFilter
-          key="reliability"
-          {...facetProps}
-          facet={facets && facets.reliability}
-          value={query.reliability}
-        />,
-        <SecurityFilter
-          key="security"
-          {...facetProps}
-          facet={facets && facets.security}
-          value={query.security}
-        />,
-        <MaintainabilityFilter
-          key="maintainability"
-          {...facetProps}
-          facet={facets && facets.maintainability}
-          value={query.maintainability}
-        />,
-        <CoverageFilter
-          key="coverage"
-          {...facetProps}
-          facet={facets && facets.coverage}
-          value={query.coverage}
-        />,
-        <DuplicationsFilter
-          key="duplications"
-          {...facetProps}
-          facet={facets && facets.duplications}
-          value={query.duplications}
-        />,
-        <SizeFilter key="size" {...facetProps} facet={facets && facets.size} value={query.size} />
-      ]}
-      {isLeakView && [
-        <NewReliabilityFilter
-          key="new_reliability"
-          {...facetProps}
-          facet={facets && facets.new_reliability}
-          value={query.new_reliability}
-        />,
-        <NewSecurityFilter
-          key="new_security"
-          {...facetProps}
-          facet={facets && facets.new_security}
-          value={query.new_security}
-        />,
-        <NewMaintainabilityFilter
-          key="new_maintainability"
-          {...facetProps}
-          facet={facets && facets.new_maintainability}
-          value={query.new_maintainability}
-        />,
-        <NewCoverageFilter
-          key="new_coverage"
-          {...facetProps}
-          facet={facets && facets.new_coverage}
-          value={query.new_coverage}
-        />,
-        <NewDuplicationsFilter
-          key="new_duplications"
-          {...facetProps}
-          facet={facets && facets.new_duplications}
-          value={query.new_duplications}
-        />,
-        <NewLinesFilter
-          key="new_lines"
-          {...facetProps}
-          facet={facets && facets.new_lines}
-          value={query.new_lines}
-        />
-      ]}
+      {!isLeakView && (
+        <React.Fragment>
+          <ReliabilityFilter
+            {...facetProps}
+            facet={facets && facets.reliability}
+            value={query.reliability}
+          />
+          <SecurityFilter
+            {...facetProps}
+            facet={facets && facets.security}
+            value={query.security}
+          />
+          <MaintainabilityFilter
+            {...facetProps}
+            facet={facets && facets.maintainability}
+            value={query.maintainability}
+          />
+          <CoverageFilter
+            {...facetProps}
+            facet={facets && facets.coverage}
+            value={query.coverage}
+          />
+          <DuplicationsFilter
+            {...facetProps}
+            facet={facets && facets.duplications}
+            value={query.duplications}
+          />
+          <SizeFilter {...facetProps} facet={facets && facets.size} value={query.size} />
+        </React.Fragment>
+      )}
+      {isLeakView && (
+        <React.Fragment>
+          <NewReliabilityFilter
+            {...facetProps}
+            facet={facets && facets.new_reliability}
+            value={query.new_reliability}
+          />
+          <NewSecurityFilter
+            {...facetProps}
+            facet={facets && facets.new_security}
+            value={query.new_security}
+          />
+          <NewMaintainabilityFilter
+            {...facetProps}
+            facet={facets && facets.new_maintainability}
+            value={query.new_maintainability}
+          />
+          <NewCoverageFilter
+            {...facetProps}
+            facet={facets && facets.new_coverage}
+            value={query.new_coverage}
+          />
+          <NewDuplicationsFilter
+            {...facetProps}
+            facet={facets && facets.new_duplications}
+            value={query.new_duplications}
+          />
+          <NewLinesFilter
+            {...facetProps}
+            facet={facets && facets.new_lines}
+            value={query.new_lines}
+          />
+        </React.Fragment>
+      )}
       <LanguagesFilterContainer
         {...facetProps}
         facet={facets && facets.languages}
index 1d2b3ef1b038153259cfaf93b6db6f14e8e5cc2b..2ff7b55d83b8ac1a877775a20a02abd9fae7672d 100644 (file)
@@ -24,60 +24,56 @@ exports[`should render \`leak\` view correctly 1`] = `
       }
     }
   />
-  <NewReliabilityFilter
-    key="new_reliability"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "view": "leak",
+  <React.Fragment>
+    <NewReliabilityFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "view": "leak",
+        }
       }
-    }
-  />
-  <NewSecurityFilter
-    key="new_security"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "view": "leak",
+    />
+    <NewSecurityFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "view": "leak",
+        }
       }
-    }
-  />
-  <NewMaintainabilityFilter
-    key="new_maintainability"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "view": "leak",
+    />
+    <NewMaintainabilityFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "view": "leak",
+        }
       }
-    }
-  />
-  <NewCoverageFilter
-    key="new_coverage"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "view": "leak",
+    />
+    <NewCoverageFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "view": "leak",
+        }
       }
-    }
-  />
-  <NewDuplicationsFilter
-    key="new_duplications"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "view": "leak",
+    />
+    <NewDuplicationsFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "view": "leak",
+        }
       }
-    }
-  />
-  <NewLinesFilter
-    key="new_lines"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "view": "leak",
+    />
+    <NewLinesFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "view": "leak",
+        }
       }
-    }
-  />
+    />
+  </React.Fragment>
   <Connect(LanguagesFilter)
     onQueryChange={[Function]}
     query={
@@ -118,61 +114,57 @@ exports[`should render correctly 1`] = `
       }
     }
   />
-  <ReliabilityFilter
-    key="reliability"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "size": "3",
+  <React.Fragment>
+    <ReliabilityFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "size": "3",
+        }
       }
-    }
-  />
-  <SecurityFilter
-    key="security"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "size": "3",
-      }
-    }
-  />
-  <MaintainabilityFilter
-    key="maintainability"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "size": "3",
+    />
+    <SecurityFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "size": "3",
+        }
       }
-    }
-  />
-  <CoverageFilter
-    key="coverage"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "size": "3",
+    />
+    <MaintainabilityFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "size": "3",
+        }
       }
-    }
-  />
-  <DuplicationsFilter
-    key="duplications"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "size": "3",
+    />
+    <CoverageFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "size": "3",
+        }
       }
-    }
-  />
-  <SizeFilter
-    key="size"
-    onQueryChange={[Function]}
-    query={
-      Object {
-        "size": "3",
+    />
+    <DuplicationsFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "size": "3",
+        }
       }
-    }
-    value="3"
-  />
+    />
+    <SizeFilter
+      onQueryChange={[Function]}
+      query={
+        Object {
+          "size": "3",
+        }
+      }
+      value="3"
+    />
+  </React.Fragment>
   <Connect(LanguagesFilter)
     onQueryChange={[Function]}
     query={
index f5be8f05f056b7d3d03637e594ddf27a3a7a7ccf..5b3dbd83fe2b1a0561d4419042196594e61eb6de 100644 (file)
@@ -98,7 +98,7 @@ export default class ProjectRowActions extends React.PureComponent<Props, State>
     const { hasAccess } = this.state;
 
     return (
-      <ActionsDropdown key="dropdown" onToggleClick={this.handleDropdownClick}>
+      <ActionsDropdown onToggleClick={this.handleDropdownClick}>
         {hasAccess === true && (
           <ActionsDropdownItem to={getComponentPermissionsUrl(this.props.project.key)}>
             {translate('edit_permissions')}
@@ -120,7 +120,6 @@ export default class ProjectRowActions extends React.PureComponent<Props, State>
         {this.state.restoreAccessModal && (
           <RestoreAccessModal
             currentUser={this.props.currentUser}
-            key="restore-access-modal"
             onClose={this.handleRestoreAccessClose}
             onRestoreAccess={this.handleRestoreAccessDone}
             project={this.props.project}
index a3bae67199d7ae76cd9e640ba87598d6f4e06dc1..d2737d581940765210cfd29abbdf5f65182ea609 100644 (file)
@@ -2,7 +2,6 @@
 
 exports[`restores access 1`] = `
 <ActionsDropdown
-  key="dropdown"
   onToggleClick={[Function]}
 >
   <ActionsDropdownItem
@@ -16,7 +15,6 @@ exports[`restores access 1`] = `
 
 exports[`restores access 2`] = `
 <ActionsDropdown
-  key="dropdown"
   onToggleClick={[Function]}
 >
   <ActionsDropdownItem
@@ -36,7 +34,6 @@ exports[`restores access 2`] = `
 
 exports[`restores access 3`] = `
 <ActionsDropdown
-  key="dropdown"
   onToggleClick={[Function]}
 >
   <ActionsDropdownItem
@@ -57,7 +54,6 @@ exports[`restores access 3`] = `
         "login": "admin",
       }
     }
-    key="restore-access-modal"
     onClose={[Function]}
     onRestoreAccess={[Function]}
     project={
index 175ba7f003e462c317d1f89a72f765ccdb52b25f..a98f0e91b5fd7860181b81ebcaf690eaf31c8046 100644 (file)
@@ -73,95 +73,96 @@ export default class ComparisonResults extends React.PureComponent<Props> {
     if (this.props.inLeft.length === 0) {
       return null;
     }
-    const header = (
-      <tr key="left-header">
-        <td>
-          <h6>
-            {translateWithParameters(
-              'quality_profiles.x_rules_only_in',
-              this.props.inLeft.length
-            )}{' '}
-            {this.props.left.name}
-          </h6>
-        </td>
-        <td>&nbsp;</td>
-      </tr>
+    return (
+      <React.Fragment>
+        <tr>
+          <td>
+            <h6>
+              {translateWithParameters(
+                'quality_profiles.x_rules_only_in',
+                this.props.inLeft.length
+              )}{' '}
+              {this.props.left.name}
+            </h6>
+          </td>
+          <td>&nbsp;</td>
+        </tr>
+        {this.props.inLeft.map(rule => (
+          <tr key={`left-${rule.key}`} className="js-comparison-in-left">
+            <td>{this.renderRule(rule, rule.severity)}</td>
+            <td>&nbsp;</td>
+          </tr>
+        ))}
+      </React.Fragment>
     );
-    const rows = this.props.inLeft.map(rule => (
-      <tr key={`left-${rule.key}`} className="js-comparison-in-left">
-        <td>{this.renderRule(rule, rule.severity)}</td>
-        <td>&nbsp;</td>
-      </tr>
-    ));
-    return [header, ...rows];
   }
 
   renderRight() {
     if (this.props.inRight.length === 0) {
       return null;
     }
-    const header = (
-      <tr key="right-header">
-        <td>&nbsp;</td>
-        <td>
-          <h6>
-            {translateWithParameters(
-              'quality_profiles.x_rules_only_in',
-              this.props.inRight.length
-            )}{' '}
-            {this.props.right.name}
-          </h6>
-        </td>
-      </tr>
+    return (
+      <React.Fragment>
+        <tr>
+          <td>&nbsp;</td>
+          <td>
+            <h6>
+              {translateWithParameters(
+                'quality_profiles.x_rules_only_in',
+                this.props.inRight.length
+              )}{' '}
+              {this.props.right.name}
+            </h6>
+          </td>
+        </tr>
+        {this.props.inRight.map(rule => (
+          <tr key={`right-${rule.key}`} className="js-comparison-in-right">
+            <td>&nbsp;</td>
+            <td>{this.renderRule(rule, rule.severity)}</td>
+          </tr>
+        ))}
+      </React.Fragment>
     );
-    const rows = this.props.inRight.map(rule => (
-      <tr key={`right-${rule.key}`} className="js-comparison-in-right">
-        <td>&nbsp;</td>
-        <td>{this.renderRule(rule, rule.severity)}</td>
-      </tr>
-    ));
-    return [header, ...rows];
   }
 
   renderModified() {
     if (this.props.modified.length === 0) {
       return null;
     }
-    const header = (
-      <tr key="modified-header">
-        <td colSpan={2} className="text-center">
-          <h6>
-            {translateWithParameters(
-              'quality_profiles.x_rules_have_different_configuration',
-              this.props.modified.length
-            )}
-          </h6>
-        </td>
-      </tr>
-    );
-    const secondHeader = (
-      <tr key="modified-second-header">
-        <td>
-          <h6>{this.props.left.name}</h6>
-        </td>
-        <td>
-          <h6>{this.props.right.name}</h6>
-        </td>
-      </tr>
+    return (
+      <React.Fragment>
+        <tr>
+          <td colSpan={2} className="text-center">
+            <h6>
+              {translateWithParameters(
+                'quality_profiles.x_rules_have_different_configuration',
+                this.props.modified.length
+              )}
+            </h6>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <h6>{this.props.left.name}</h6>
+          </td>
+          <td>
+            <h6>{this.props.right.name}</h6>
+          </td>
+        </tr>
+        {this.props.modified.map(rule => (
+          <tr key={`modified-${rule.key}`} className="js-comparison-modified">
+            <td>
+              {this.renderRule(rule, rule.left.severity)}
+              {this.renderParameters(rule.left.params)}
+            </td>
+            <td>
+              {this.renderRule(rule, rule.right.severity)}
+              {this.renderParameters(rule.right.params)}
+            </td>
+          </tr>
+        ))}
+      </React.Fragment>
     );
-    const rows = this.props.modified.map(rule => (
-      <tr key={`modified-${rule.key}`} className="js-comparison-modified">
-        <td>
-          {this.renderRule(rule, rule.left.severity)}
-          {this.renderParameters(rule.left.params)}
-        </td>
-        <td>
-          {this.renderRule(rule, rule.right.severity)}
-          {this.renderParameters(rule.right.params)}
-        </td>
-      </tr>
-    ));
-    return [header, secondHeader, ...rows];
   }
 
   render() {
index facde0a4a34d9018c5ffdea1eb1beaae8d20f390..4fec4cb33e992b53d303f3a4b3c788dbc8738cb7 100644 (file)
@@ -164,7 +164,6 @@ export default class ProfileRules extends React.PureComponent<Props, State> {
             </thead>
             <tbody>
               <ProfileRulesRowTotal
-                key="all"
                 count={this.state.activatedTotal}
                 organization={organization}
                 qprofile={profile.key}
index 6d92fb9ab26cc264c753ec5ee5e7a89f03877230..c366398e56efdc75997c7f297aa4840d59b2bd2d 100644 (file)
@@ -28,7 +28,6 @@ exports[`should render the quality profiles rules with sonarway comparison 1`] =
       <tbody>
         <ProfileRulesRowTotal
           count={68}
-          key="all"
           organization="foo"
           qprofile="foo"
           total={243}
index 0e730faf5159b4d0f52bbc6dc0e8251c0e053548..9d3064d124cc72bf00feefd9541f8388196de9ae 100644 (file)
@@ -129,7 +129,6 @@ Array [
               >
                 <CheckIcon>
                   <svg
-                    className={undefined}
                     height={16}
                     version="1.1"
                     viewBox="0 0 16 16"
index b36b4f02776e225383a761314f7711b4a0c523d5..48a5505dee211d99e85095f8bc1041d86f166e11 100644 (file)
@@ -25,9 +25,6 @@ exports[`works with existing organization 1`] = `
   >
     <div
       className="boxed-group onboarding-step is-open"
-      onClick={undefined}
-      role={undefined}
-      tabIndex={undefined}
     >
       <div
         className="onboarding-step-number"
@@ -82,7 +79,6 @@ exports[`works with existing organization 1`] = `
                     },
                   ]
                 }
-                value={undefined}
               >
                 <Select
                   addLabelText="Add \\"{label}\\"?"
@@ -138,13 +134,11 @@ exports[`works with existing organization 1`] = `
                   searchable={true}
                   simpleValue={false}
                   tabSelectsValue={true}
-                  value={undefined}
                   valueComponent={[Function]}
                   valueKey="value"
                 >
                   <div
                     className="Select input-super-large Select--single is-searchable"
-                    style={undefined}
                   >
                     <div
                       className="Select-control"
@@ -153,7 +147,6 @@ exports[`works with existing organization 1`] = `
                       onTouchEnd={[Function]}
                       onTouchMove={[Function]}
                       onTouchStart={[Function]}
-                      style={undefined}
                     >
                       <span
                         className="Select-multi-value-wrapper"
@@ -166,11 +159,8 @@ exports[`works with existing organization 1`] = `
                         </div>
                         <AutosizeInput
                           aria-activedescendant="react-select-2--value"
-                          aria-describedby={undefined}
                           aria-expanded="false"
                           aria-haspopup="false"
-                          aria-label={undefined}
-                          aria-labelledby={undefined}
                           aria-owns=""
                           className="Select-input"
                           minWidth="5"
@@ -179,7 +169,6 @@ exports[`works with existing organization 1`] = `
                           onFocus={[Function]}
                           required={false}
                           role="combobox"
-                          tabIndex={undefined}
                           value=""
                         >
                           <div
@@ -199,14 +188,9 @@ exports[`works with existing organization 1`] = `
                             />
                             <input
                               aria-activedescendant="react-select-2--value"
-                              aria-describedby={undefined}
                               aria-expanded="false"
                               aria-haspopup="false"
-                              aria-label={undefined}
-                              aria-labelledby={undefined}
                               aria-owns=""
-                              className={undefined}
-                              id={undefined}
                               onBlur={[Function]}
                               onChange={[Function]}
                               onFocus={[Function]}
@@ -218,7 +202,6 @@ exports[`works with existing organization 1`] = `
                                   "width": "5px",
                                 }
                               }
-                              tabIndex={undefined}
                               value=""
                             />
                             <div
index c0f9d5a2e4edf1721912d751320b806da45aeb25..a09c774b420e3eaee47839f9acabcf0265feebc6 100644 (file)
@@ -24,9 +24,6 @@ exports[`generates token 1`] = `
   >
     <div
       className="boxed-group onboarding-step is-open"
-      onClick={undefined}
-      role={undefined}
-      tabIndex={undefined}
     >
       <div
         className="onboarding-step-number"
@@ -129,9 +126,6 @@ exports[`generates token 2`] = `
   >
     <div
       className="boxed-group onboarding-step is-open"
-      onClick={undefined}
-      role={undefined}
-      tabIndex={undefined}
     >
       <div
         className="onboarding-step-number"
@@ -231,9 +225,6 @@ exports[`generates token 3`] = `
   >
     <div
       className="boxed-group onboarding-step is-open"
-      onClick={undefined}
-      role={undefined}
-      tabIndex={undefined}
     >
       <div
         className="onboarding-step-number"
@@ -332,9 +323,6 @@ exports[`revokes token 1`] = `
   >
     <div
       className="boxed-group onboarding-step is-open"
-      onClick={undefined}
-      role={undefined}
-      tabIndex={undefined}
     >
       <div
         className="onboarding-step-number"
@@ -433,9 +421,6 @@ exports[`revokes token 2`] = `
   >
     <div
       className="boxed-group onboarding-step is-open"
-      onClick={undefined}
-      role={undefined}
-      tabIndex={undefined}
     >
       <div
         className="onboarding-step-number"
@@ -515,9 +500,6 @@ exports[`revokes token 3`] = `
   >
     <div
       className="boxed-group onboarding-step is-open"
-      onClick={undefined}
-      role={undefined}
-      tabIndex={undefined}
     >
       <div
         className="onboarding-step-number"
index 9c5f64fccea7e6b0881efee6df68b54b13c226a0..4d3302709f0bf1bd961d8dce1bd000cb0dea9412 100644 (file)
@@ -49,7 +49,7 @@ export default class UserActions extends React.PureComponent<Props, State> {
   renderActions = () => {
     const { user } = this.props;
     return (
-      <ActionsDropdown key="actions" menuClassName="dropdown-menu-right">
+      <ActionsDropdown menuClassName="dropdown-menu-right">
         <ActionsDropdownItem className="js-user-update" onClick={this.handleOpenUpdateForm}>
           {translate('update_details')}
         </ActionsDropdownItem>
@@ -75,39 +75,23 @@ export default class UserActions extends React.PureComponent<Props, State> {
     const { openForm } = this.state;
     const { isCurrentUser, onUpdateUsers, user } = this.props;
 
-    if (openForm === 'deactivate') {
-      return [
-        this.renderActions(),
-        <DeactivateForm
-          key="form"
-          onClose={this.handleCloseForm}
-          onUpdateUsers={onUpdateUsers}
-          user={user}
-        />
-      ];
-    }
-    if (openForm === 'password') {
-      return [
-        this.renderActions(),
-        <PasswordForm
-          isCurrentUser={isCurrentUser}
-          key="form"
-          onClose={this.handleCloseForm}
-          user={user}
-        />
-      ];
-    }
-    if (openForm === 'update') {
-      return [
-        this.renderActions(),
-        <UserForm
-          key="form"
-          onClose={this.handleCloseForm}
-          onUpdateUsers={onUpdateUsers}
-          user={user}
-        />
-      ];
-    }
-    return this.renderActions();
+    return (
+      <React.Fragment>
+        {this.renderActions()}
+        {openForm === 'deactivate' && (
+          <DeactivateForm
+            onClose={this.handleCloseForm}
+            onUpdateUsers={onUpdateUsers}
+            user={user}
+          />
+        )}
+        {openForm === 'password' && (
+          <PasswordForm isCurrentUser={isCurrentUser} onClose={this.handleCloseForm} user={user} />
+        )}
+        {openForm === 'update' && (
+          <UserForm onClose={this.handleCloseForm} onUpdateUsers={onUpdateUsers} user={user} />
+        )}
+      </React.Fragment>
+    );
   }
 }
index 6328daaf8e04deccf93c977b1c1a6d4bcff72388..0fd31e7f6ae2c72ec5fc5e5c1a8b986414bfa596 100644 (file)
@@ -1,23 +1,24 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
 exports[`should render correctly 1`] = `
-<ActionsDropdown
-  key="actions"
-  menuClassName="dropdown-menu-right"
->
-  <ActionsDropdownItem
-    className="js-user-update"
-    onClick={[Function]}
+<React.Fragment>
+  <ActionsDropdown
+    menuClassName="dropdown-menu-right"
   >
-    update_details
-  </ActionsDropdownItem>
-  <ActionsDropdownDivider />
-  <ActionsDropdownItem
-    className="js-user-deactivate"
-    destructive={true}
-    onClick={[Function]}
-  >
-    users.deactivate
-  </ActionsDropdownItem>
-</ActionsDropdown>
+    <ActionsDropdownItem
+      className="js-user-update"
+      onClick={[Function]}
+    >
+      update_details
+    </ActionsDropdownItem>
+    <ActionsDropdownDivider />
+    <ActionsDropdownItem
+      className="js-user-deactivate"
+      destructive={true}
+      onClick={[Function]}
+    >
+      users.deactivate
+    </ActionsDropdownItem>
+  </ActionsDropdown>
+</React.Fragment>
 `;
index acc3eec0736fac7a56b74aedf5ce507403b7f9c0..e5854e7792fa2d960f806258acbb37d2d270909f 100644 (file)
@@ -2,18 +2,13 @@
 
 exports[`should display bubbles 1`] = `
 <Bubble
-  color={undefined}
   key="0"
-  link={undefined}
-  onClick={undefined}
   r={45}
-  tooltip={undefined}
   x={-10}
   y={52.3015873015873}
 >
   <circle
     className="bubble-chart-bubble"
-    onClick={undefined}
     r={45}
     style={
       Object {
@@ -28,18 +23,13 @@ exports[`should display bubbles 1`] = `
 
 exports[`should display bubbles 2`] = `
 <Bubble
-  color={undefined}
   key="1"
-  link={undefined}
-  onClick={undefined}
   r={33.57142857142857}
-  tooltip={undefined}
   x={-75}
   y={33.57142857142857}
 >
   <circle
     className="bubble-chart-bubble"
-    onClick={undefined}
     r={33.57142857142857}
     style={
       Object {
@@ -54,12 +44,9 @@ exports[`should display bubbles 2`] = `
 
 exports[`should render bubble links 1`] = `
 <Bubble
-  color={undefined}
   key="0"
   link="foo"
-  onClick={undefined}
   r={45}
-  tooltip={undefined}
   x={-10}
   y={52.3015873015873}
 >
@@ -74,7 +61,6 @@ exports[`should render bubble links 1`] = `
     >
       <circle
         className="bubble-chart-bubble"
-        onClick={undefined}
         r={45}
         style={
           Object {
@@ -91,12 +77,9 @@ exports[`should render bubble links 1`] = `
 
 exports[`should render bubble links 2`] = `
 <Bubble
-  color={undefined}
   key="1"
   link="bar"
-  onClick={undefined}
   r={33.57142857142857}
-  tooltip={undefined}
   x={-75}
   y={33.57142857142857}
 >
@@ -111,7 +94,6 @@ exports[`should render bubble links 2`] = `
     >
       <circle
         className="bubble-chart-bubble"
-        onClick={undefined}
         r={33.57142857142857}
         style={
           Object {
@@ -128,12 +110,10 @@ exports[`should render bubble links 2`] = `
 
 exports[`should render bubbles with click handlers 1`] = `
 <Bubble
-  color={undefined}
   key="0"
   link="foo"
   onClick={[Function]}
   r={45}
-  tooltip={undefined}
   x={-10}
   y={52.3015873015873}
 >
@@ -154,12 +134,10 @@ exports[`should render bubbles with click handlers 1`] = `
 
 exports[`should render bubbles with click handlers 2`] = `
 <Bubble
-  color={undefined}
   key="1"
   link="bar"
   onClick={[Function]}
   r={33.57142857142857}
-  tooltip={undefined}
   x={-75}
   y={33.57142857142857}
 >
index ef3096db9fb8b44df368c259299d894203047568..79a4fa67c813446102e58fa6261bbf95b1c65ca2 100644 (file)
@@ -28,9 +28,9 @@
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.0.7.tgz#4266d7c9be15fa81256a88d1d052d61cd8dc572c"
 
-"@types/enzyme@3.1.1":
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.1.1.tgz#102ebd9aa33fa15fd11477b6f701cde18cbe7de0"
+"@types/enzyme@3.1.5":
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.1.5.tgz#6cc31d7f7e552209e244a45d89279f4def4aaade"
   dependencies:
     "@types/cheerio" "*"
     "@types/react" "*"
@@ -43,9 +43,9 @@
   version "3.2.2"
   resolved "https://registry.yarnpkg.com/@types/history/-/history-3.2.2.tgz#b6affa240cb10b5f841c6443d8a24d7f3fc8bb0c"
 
-"@types/jest@21.1.5":
-  version "21.1.5"
-  resolved "https://registry.yarnpkg.com/@types/jest/-/jest-21.1.5.tgz#3db93d069d12602ca115d3604550e15131d8eb7a"
+"@types/jest@21.1.8":
+  version "21.1.8"
+  resolved "https://registry.yarnpkg.com/@types/jest/-/jest-21.1.8.tgz#d497213725684f1e5a37900b17a47c9c018f1a97"
 
 "@types/jquery@3.2.11":
   version "3.2.11"
@@ -67,9 +67,9 @@
   version "15.5.2"
   resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.2.tgz#3c6b8dceb2906cc87fe4358e809f9d20c8d59be1"
 
-"@types/react-dom@16.0.2":
-  version "16.0.2"
-  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.0.2.tgz#2da9de21fd83f0140b64794ad9c47930230aedae"
+"@types/react-dom@16.0.3":
+  version "16.0.3"
+  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.0.3.tgz#8accad7eabdab4cca3e1a56f5ccb57de2da0ff64"
   dependencies:
     "@types/node" "*"
     "@types/react" "*"
   dependencies:
     "@types/react" "*"
 
-"@types/react@*", "@types/react@16.0.19":
-  version "16.0.19"
-  resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.19.tgz#f804a0fcd6d94c17df92cf2fd46671bbbc862329"
+"@types/react@*", "@types/react@16.0.29":
+  version "16.0.29"
+  resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.29.tgz#4eea6a8de9f40ca71d580ae7a9f3b4b77b368de8"
 
 abab@^1.0.3:
   version "1.0.4"
@@ -2411,45 +2411,46 @@ entities@^1.1.1, entities@~1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
 
-enzyme-adapter-react-16@1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.2.tgz#8c6f431f17c69e1e9eeb25ca4bd92f31971eb2dd"
+enzyme-adapter-react-16@1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.0.tgz#86c5db7c10f0be6ec25d54ca41b59f2abb397cf4"
   dependencies:
-    enzyme-adapter-utils "^1.0.0"
+    enzyme-adapter-utils "^1.1.0"
     lodash "^4.17.4"
     object.assign "^4.0.4"
     object.values "^1.0.4"
     prop-types "^15.5.10"
     react-test-renderer "^16.0.0-0"
 
-enzyme-adapter-utils@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.0.1.tgz#fcd81223339a55a312f7552641e045c404084009"
+enzyme-adapter-utils@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.2.0.tgz#7f4471ee0a70b91169ec8860d2bf0a6b551664b2"
   dependencies:
     lodash "^4.17.4"
     object.assign "^4.0.4"
     prop-types "^15.5.10"
 
-enzyme-to-json@3.1.4:
-  version "3.1.4"
-  resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.1.4.tgz#a4a85a8f7b561cb8c9c0d728ad1b619a3fed7df2"
+enzyme-to-json@3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.3.0.tgz#553e23a09ffb4b0cf09287e2edf9c6539fddaa84"
   dependencies:
     lodash "^4.17.4"
 
-enzyme@3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.1.0.tgz#d8ca84085790fbcec6ed40badd14478faee4c25a"
+enzyme@3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.2.0.tgz#998bdcda0fc71b8764a0017f7cc692c943f54a7a"
   dependencies:
     cheerio "^1.0.0-rc.2"
     function.prototype.name "^1.0.3"
+    has "^1.0.1"
     is-subset "^0.1.1"
     lodash "^4.17.4"
     object-is "^1.0.1"
     object.assign "^4.0.4"
     object.entries "^1.0.4"
     object.values "^1.0.4"
-    raf "^3.3.2"
-    rst-selector-parser "^2.2.2"
+    raf "^3.4.0"
+    rst-selector-parser "^2.2.3"
 
 errno@^0.1.3, errno@^0.1.4:
   version "0.1.4"
@@ -5952,7 +5953,7 @@ querystringify@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb"
 
-raf@^3.3.2:
+raf@^3.4.0:
   version "3.4.0"
   resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575"
   dependencies:
@@ -6072,9 +6073,9 @@ react-dev-utils@^3.0.0:
     strip-ansi "3.0.1"
     text-table "0.2.0"
 
-react-dom@16.0.0:
-  version "16.0.0"
-  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.0.0.tgz#9cc3079c3dcd70d4c6e01b84aab2a7e34c303f58"
+react-dom@16.2.0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.2.0.tgz#69003178601c0ca19b709b33a83369fe6124c044"
   dependencies:
     fbjs "^0.8.16"
     loose-envify "^1.1.0"
@@ -6169,12 +6170,13 @@ react-side-effect@^1.1.0:
     exenv "^1.2.1"
     shallowequal "^1.0.1"
 
-react-test-renderer@16.0.0, react-test-renderer@^16.0.0-0:
-  version "16.0.0"
-  resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.0.0.tgz#9fe7b8308f2f71f29fc356d4102086f131c9cb15"
+react-test-renderer@16.2.0, react-test-renderer@^16.0.0-0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.2.0.tgz#bddf259a6b8fcd8555f012afc8eacc238872a211"
   dependencies:
     fbjs "^0.8.16"
     object-assign "^4.1.1"
+    prop-types "^15.6.0"
 
 react-virtualized@9.12.0:
   version "9.12.0"
@@ -6186,9 +6188,9 @@ react-virtualized@9.12.0:
     loose-envify "^1.3.0"
     prop-types "^15.5.4"
 
-react@16.0.0:
-  version "16.0.0"
-  resolved "https://registry.yarnpkg.com/react/-/react-16.0.0.tgz#ce7df8f1941b036f02b2cca9dbd0cb1f0e855e2d"
+react@16.2.0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/react/-/react-16.2.0.tgz#a31bd2dab89bff65d42134fa187f24d054c273ba"
   dependencies:
     fbjs "^0.8.16"
     loose-envify "^1.1.0"
@@ -6547,7 +6549,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
     hash-base "^2.0.0"
     inherits "^2.0.1"
 
-rst-selector-parser@^2.2.2:
+rst-selector-parser@^2.2.3:
   version "2.2.3"
   resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91"
   dependencies: