From 0bf9da7268b7512812490cc4c2562afd84d443d7 Mon Sep 17 00:00:00 2001 From: Philippe Perrin Date: Thu, 17 Oct 2019 17:39:23 +0200 Subject: [PATCH] SONAR-12591 Creating a new portfolio / application leads to a blank page --- .../portfolio/components/CreateFormShim.tsx | 5 +-- .../__tests__/CreateFormShim-test.tsx | 36 +++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 server/sonar-web/src/main/js/apps/portfolio/components/__tests__/CreateFormShim-test.tsx diff --git a/server/sonar-web/src/main/js/apps/portfolio/components/CreateFormShim.tsx b/server/sonar-web/src/main/js/apps/portfolio/components/CreateFormShim.tsx index 16a01c8c6ab..4d75e16bf93 100644 --- a/server/sonar-web/src/main/js/apps/portfolio/components/CreateFormShim.tsx +++ b/server/sonar-web/src/main/js/apps/portfolio/components/CreateFormShim.tsx @@ -18,6 +18,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import * as React from 'react'; +import * as theme from '../../../app/theme'; interface Props { defaultQualifier?: string; @@ -27,7 +28,7 @@ interface Props { export default class CreateFormShim extends React.Component { render() { - const { CreateForm } = (window as any).SonarGovernance; - return ; + const { createFormBuilder } = (window as any).SonarGovernance; + return createFormBuilder(this.props, theme); } } diff --git a/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/CreateFormShim-test.tsx b/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/CreateFormShim-test.tsx new file mode 100644 index 00000000000..84a7c7f9ad8 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/CreateFormShim-test.tsx @@ -0,0 +1,36 @@ +/* + * SonarQube + * Copyright (C) 2009-2019 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 { shallow } from 'enzyme'; +import * as React from 'react'; +import CreateFormShim from '../CreateFormShim'; + +afterAll(() => delete (window as any).SonarGovernance); + +it('should call SonarGovernance createFormBuilder to build CreateForm component', () => { + const builderMock = jest.fn(); + (window as any).SonarGovernance = { createFormBuilder: builderMock }; + shallowRender(); + expect(builderMock).toHaveBeenCalled(); +}); + +function shallowRender() { + return shallow(); +} -- 2.39.5