From 2af145e34db52a865a16d36c85fb8d83a9cf1351 Mon Sep 17 00:00:00 2001 From: Grégoire Aubert Date: Fri, 29 Mar 2019 18:39:32 +0100 Subject: Add some more coverage --- .../components/nav/component/ComponentNavMeta.tsx | 11 +- .../component/__tests__/ComponentNavMeta-test.tsx | 68 ++++++++---- .../__snapshots__/ComponentNavMeta-test.tsx.snap | 20 +++- .../src/main/js/apps/account/profile/Profile.tsx | 34 +++--- .../account/profile/__tests__/Profile-test.tsx | 59 +++++++++++ .../__tests__/__snapshots__/Profile-test.tsx.snap | 58 +++++++++++ .../components/__tests__/PluginActions-test.tsx | 58 +++++++++++ .../__snapshots__/PluginActions-test.tsx.snap | 116 +++++++++++++++++++++ .../overview/meta/__tests__/MetaContainer-test.tsx | 1 + .../__snapshots__/MetaContainer-test.tsx.snap | 96 +++++++++++++++++ .../details/__tests__/ProfileProjects-test.tsx | 56 ++++++++++ .../__snapshots__/ProfileProjects-test.tsx.snap | 95 +++++++++++++++++ .../apps/users/components/UserListItemIdentity.tsx | 2 +- .../__tests__/UserListItemIdentity-test.tsx | 86 +++++++++++++++ .../UserListItemIdentity-test.tsx.snap | 80 ++++++++++++++ 15 files changed, 790 insertions(+), 50 deletions(-) create mode 100644 server/sonar-web/src/main/js/apps/account/profile/__tests__/Profile-test.tsx create mode 100644 server/sonar-web/src/main/js/apps/account/profile/__tests__/__snapshots__/Profile-test.tsx.snap create mode 100644 server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginActions-test.tsx create mode 100644 server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginActions-test.tsx.snap create mode 100644 server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfileProjects-test.tsx create mode 100644 server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileProjects-test.tsx.snap create mode 100644 server/sonar-web/src/main/js/apps/users/components/__tests__/UserListItemIdentity-test.tsx create mode 100644 server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UserListItemIdentity-test.tsx.snap (limited to 'server/sonar-web/src/main/js') diff --git a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMeta.tsx b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMeta.tsx index 08ca22507ba..9694df8232b 100644 --- a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMeta.tsx +++ b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMeta.tsx @@ -36,12 +36,9 @@ import { translate } from '../../../../helpers/l10n'; import { isLoggedIn } from '../../../../helpers/users'; import { getCurrentUser, Store } from '../../../../store/rootReducer'; -interface StateProps { - currentUser: T.CurrentUser; -} - -interface Props extends StateProps { +export interface Props { branchLike?: T.BranchLike; + currentUser: T.CurrentUser; component: T.Component; warnings: string[]; } @@ -100,7 +97,7 @@ export function ComponentNavMeta({ branchLike, component, currentUser, warnings ); } -function getCurrentPage(component: T.Component, branchLike: T.BranchLike | undefined) { +export function getCurrentPage(component: T.Component, branchLike: T.BranchLike | undefined) { let currentPage: T.HomePage | undefined; if (component.qualifier === 'VW' || component.qualifier === 'SVW') { currentPage = { type: 'PORTFOLIO', component: component.key }; @@ -115,7 +112,7 @@ function getCurrentPage(component: T.Component, branchLike: T.BranchLike | undef return currentPage; } -const mapStateToProps = (state: Store): StateProps => ({ +const mapStateToProps = (state: Store) => ({ currentUser: getCurrentUser(state) }); diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavMeta-test.tsx b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavMeta-test.tsx index 8888565e814..acc42d006cf 100644 --- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavMeta-test.tsx +++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavMeta-test.tsx @@ -19,40 +19,70 @@ */ import * as React from 'react'; import { shallow } from 'enzyme'; -import { ComponentNavMeta } from '../ComponentNavMeta'; +import { ComponentNavMeta, getCurrentPage, Props } from '../ComponentNavMeta'; import { mockShortLivingBranch, mockComponent, mockLongLivingBranch, - mockPullRequest + mockPullRequest, + mockCurrentUser, + mockLoggedInUser } from '../../../../../helpers/testMocks'; -it('renders status of short-living branch', () => { - expect(shallowRender()).toMatchSnapshot(); -}); +describe('#ComponentNavMeta', () => { + it('renders status of short-living branch', () => { + expect(shallowRender()).toMatchSnapshot(); + }); -it('renders meta for long-living branch', () => { - expect(shallowRender({ branchLike: mockLongLivingBranch() })).toMatchSnapshot(); -}); + it('renders meta for long-living branch', () => { + expect( + shallowRender({ branchLike: mockLongLivingBranch(), currentUser: mockLoggedInUser() }) + ).toMatchSnapshot(); + }); -it('renders meta for pull request', () => { - expect( - shallowRender({ - branchLike: mockPullRequest({ - url: 'https://example.com/pull/1234' + it('renders meta for pull request', () => { + expect( + shallowRender({ + branchLike: mockPullRequest({ + url: 'https://example.com/pull/1234' + }) }) - }) - ).toMatchSnapshot(); + ).toMatchSnapshot(); + }); +}); + +describe('#getCurrentPage', () => { + it('should return a portfolio page', () => { + expect(getCurrentPage(mockComponent({ key: 'foo', qualifier: 'VW' }), undefined)).toEqual({ + type: 'PORTFOLIO', + component: 'foo' + }); + }); + + it('should return an app page', () => { + expect( + getCurrentPage( + mockComponent({ key: 'foo', qualifier: 'APP' }), + mockLongLivingBranch({ name: 'develop' }) + ) + ).toEqual({ type: 'APPLICATION', component: 'foo', branch: 'develop' }); + }); + + it('should return a portfolio page', () => { + expect(getCurrentPage(mockComponent(), mockShortLivingBranch())).toEqual({ + type: 'PROJECT', + component: 'my-project', + branch: undefined + }); + }); }); -function shallowRender(props = {}) { +function shallowRender(props: Partial = {}) { return shallow( diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap index fdd4a833114..e8ea68e5742 100644 --- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap +++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`renders meta for long-living branch 1`] = ` +exports[`#ComponentNavMeta renders meta for long-living branch 1`] = `
@@ -23,10 +23,24 @@ exports[`renders meta for long-living branch 1`] = ` 0.0.1
+
+ +
`; -exports[`renders meta for pull request 1`] = ` +exports[`#ComponentNavMeta renders meta for pull request 1`] = `
@@ -69,7 +83,7 @@ exports[`renders meta for pull request 1`] = `
`; -exports[`renders status of short-living branch 1`] = ` +exports[`#ComponentNavMeta renders status of short-living branch 1`] = `
diff --git a/server/sonar-web/src/main/js/apps/account/profile/Profile.tsx b/server/sonar-web/src/main/js/apps/account/profile/Profile.tsx index 000c9dd86cb..73c6f255596 100644 --- a/server/sonar-web/src/main/js/apps/account/profile/Profile.tsx +++ b/server/sonar-web/src/main/js/apps/account/profile/Profile.tsx @@ -18,56 +18,50 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import * as React from 'react'; -import { connect } from 'react-redux'; import UserExternalIdentity from './UserExternalIdentity'; import UserGroups from './UserGroups'; import UserScmAccounts from './UserScmAccounts'; -import { getCurrentUser, areThereCustomOrganizations, Store } from '../../../store/rootReducer'; import { translate } from '../../../helpers/l10n'; +import { isSonarCloud } from '../../../helpers/system'; +import { whenLoggedIn } from '../../../components/hoc/whenLoggedIn'; -interface Props { - customOrganizations?: boolean; - user: T.LoggedInUser; +export interface Props { + currentUser: T.LoggedInUser; } -function Profile({ customOrganizations, user }: Props) { +export function Profile({ currentUser }: Props) { return (
- {translate('login')}: {user.login} + {translate('login')}: {currentUser.login}
- {!user.local && user.externalProvider !== 'sonarqube' && ( + {!currentUser.local && currentUser.externalProvider !== 'sonarqube' && (
- +
)} - {!!user.email && ( + {Boolean(currentUser.email) && (
- {translate('my_profile.email')}: {user.email} + {translate('my_profile.email')}: {currentUser.email}
)} - {!customOrganizations && ( + {!isSonarCloud() && ( <>
- + )}
- +
); } -const mapStateToProps = (state: Store) => ({ - customOrganizations: areThereCustomOrganizations(state), - user: getCurrentUser(state) as T.LoggedInUser -}); - -export default connect(mapStateToProps)(Profile); +export default whenLoggedIn(Profile); diff --git a/server/sonar-web/src/main/js/apps/account/profile/__tests__/Profile-test.tsx b/server/sonar-web/src/main/js/apps/account/profile/__tests__/Profile-test.tsx new file mode 100644 index 00000000000..4ef71994b28 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/account/profile/__tests__/Profile-test.tsx @@ -0,0 +1,59 @@ +/* + * 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 * as React from 'react'; +import { shallow } from 'enzyme'; +import { Profile, Props } from '../Profile'; +import { mockLoggedInUser } from '../../../../helpers/testMocks'; +import { isSonarCloud } from '../../../../helpers/system'; + +jest.mock('../../../../helpers/system', () => ({ isSonarCloud: jest.fn().mockReturnValue(false) })); + +it('should render correctly', () => { + expect(shallowRender()).toMatchSnapshot(); +}); + +it('should render email', () => { + expect( + shallowRender(mockLoggedInUser({ email: 'john@doe.com' })) + .find('#email') + .exists() + ).toBe(true); +}); + +it('should render external identity', () => { + expect( + shallowRender(mockLoggedInUser({ local: false, externalProvider: 'github' })) + .find('UserExternalIdentity') + .exists() + ).toBe(true); +}); + +it('should not display user groups', () => { + (isSonarCloud as jest.Mock).mockReturnValueOnce(true); + expect( + shallowRender() + .find('UserGroups') + .exists() + ).toBe(false); +}); + +function shallowRender(currentUser: Props['currentUser'] = mockLoggedInUser()) { + return shallow(); +} diff --git a/server/sonar-web/src/main/js/apps/account/profile/__tests__/__snapshots__/Profile-test.tsx.snap b/server/sonar-web/src/main/js/apps/account/profile/__tests__/__snapshots__/Profile-test.tsx.snap new file mode 100644 index 00000000000..e896064c035 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/account/profile/__tests__/__snapshots__/Profile-test.tsx.snap @@ -0,0 +1,58 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should render correctly 1`] = ` +
+
+
+ login + : + + luke + +
+
+ +
+
+ +
+ +
+
+`; diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginActions-test.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginActions-test.tsx new file mode 100644 index 00000000000..646d5b849ae --- /dev/null +++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginActions-test.tsx @@ -0,0 +1,58 @@ +/* + * 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 * as React from 'react'; +import { shallow } from 'enzyme'; +import PluginActions from '../PluginActions'; +import { PluginInstalled, PluginAvailable } from '../../../../api/plugins'; + +const installedPlugin: PluginInstalled = { + key: 'foo', + name: 'Foo', + filename: 'foo.zip', + hash: '', + implementationBuild: '', + sonarLintSupported: true, + termsAndConditionsUrl: 'https://url', + updatedAt: 1, + updates: [{ status: 'COMPATIBLE', requires: [] }], + version: '7.7' +}; + +const availablePlugin: PluginAvailable = { + key: 'foo', + name: 'Foo', + release: { version: '7.7', date: 'date' }, + termsAndConditionsUrl: 'https://url', + update: { status: 'COMPATIBLE', requires: [] } +}; + +it('should render installed plugin correctly', () => { + expect(shallowRender()).toMatchSnapshot(); + expect(shallowRender({ plugin: { ...installedPlugin, editionBundled: true } })).toMatchSnapshot(); +}); + +it('should render available plugin correctly', () => { + expect(shallowRender({ plugin: availablePlugin })).toMatchSnapshot(); + expect(shallowRender({ plugin: { ...availablePlugin, editionBundled: true } })).toMatchSnapshot(); +}); + +function shallowRender(props: Partial = {}) { + return shallow(); +} diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginActions-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginActions-test.tsx.snap new file mode 100644 index 00000000000..dc924345af0 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginActions-test.tsx.snap @@ -0,0 +1,116 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should render available plugin correctly 1`] = ` +
+

+ + + + + marketplace.terms_and_conditions + +

+ +
+`; + +exports[`should render available plugin correctly 2`] = ` +
+
+

+ marketplace.available_under_commercial_license +

+ + marketplace.learn_more + +
+
+`; + +exports[`should render installed plugin correctly 1`] = ` +
+
+ + +
+
+`; + +exports[`should render installed plugin correctly 2`] = ` +
+

+ + marketplace.installed +

+
+ +
+
+`; diff --git a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaContainer-test.tsx b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaContainer-test.tsx index 99b5e123b8d..be344becf16 100644 --- a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaContainer-test.tsx +++ b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaContainer-test.tsx @@ -59,6 +59,7 @@ function shallowRender(props: Partial = {}) { appState={mockAppState({ organizationsEnabled: true })} component={mockComponent()} currentUser={mockLoggedInUser()} + metrics={{}} onComponentChange={jest.fn()} organization={mockOrganization()} userOrganizations={[mockOrganization()]} diff --git a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/__snapshots__/MetaContainer-test.tsx.snap b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/__snapshots__/MetaContainer-test.tsx.snap index fc95c357f57..d6c60fc0d8b 100644 --- a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/__snapshots__/MetaContainer-test.tsx.snap +++ b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/__snapshots__/MetaContainer-test.tsx.snap @@ -39,6 +39,33 @@ exports[`should hide QG and QP links if the organization has a paid plan, and th onComponentChange={[MockFunction]} />
+ + `; @@ -117,6 +149,33 @@ exports[`should render correctly 1`] = ` onComponentChange={[MockFunction]} /> +
+ `; @@ -224,6 +288,33 @@ exports[`should show QG and QP links if the organization has a paid plan, and th onComponentChange={[MockFunction]} /> +
+ `; diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfileProjects-test.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfileProjects-test.tsx new file mode 100644 index 00000000000..dcfdaabdb0e --- /dev/null +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfileProjects-test.tsx @@ -0,0 +1,56 @@ +/* + * 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 * as React from 'react'; +import { shallow } from 'enzyme'; +import ProfileProjects from '../ProfileProjects'; +import { mockQualityProfile } from '../../../../helpers/testMocks'; +import { waitAndUpdate } from '../../../../helpers/testUtils'; + +jest.mock('../../../../api/quality-profiles', () => ({ + getProfileProjects: jest.fn().mockResolvedValue({ + results: [ + { + id: '633a5180-1ad7-4008-a5cb-e1d3cec4c816', + key: 'org.sonarsource.xml:xml', + name: 'SonarXML', + selected: true + } + ], + paging: { pageIndex: 1, pageSize: 2, total: 10 }, + more: true + }) +})); + +it('should render correctly', async () => { + const wrapper = shallowRender(); + expect(wrapper).toMatchSnapshot(); + await waitAndUpdate(wrapper); + expect(wrapper).toMatchSnapshot(); +}); + +function shallowRender(props: Partial = {}) { + return shallow( + + ); +} diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileProjects-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileProjects-test.tsx.snap new file mode 100644 index 00000000000..de37df033c2 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileProjects-test.tsx.snap @@ -0,0 +1,95 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should render correctly 1`] = ` +
+
+ +
+
+

+ projects +

+
+
+ +
+
+`; + +exports[`should render correctly 2`] = ` +
+
+ +
+
+

+ projects +

+
+
+
    +
  • + + + + + SonarXML + + +
  • +
+ +
+
+`; diff --git a/server/sonar-web/src/main/js/apps/users/components/UserListItemIdentity.tsx b/server/sonar-web/src/main/js/apps/users/components/UserListItemIdentity.tsx index 9d6c85ebecf..b4e53b19b55 100644 --- a/server/sonar-web/src/main/js/apps/users/components/UserListItemIdentity.tsx +++ b/server/sonar-web/src/main/js/apps/users/components/UserListItemIdentity.tsx @@ -22,7 +22,7 @@ import * as theme from '../../../app/theme'; import { getTextColor } from '../../../helpers/colors'; import { getBaseUrl } from '../../../helpers/urls'; -interface Props { +export interface Props { identityProvider?: T.IdentityProvider; user: T.User; } diff --git a/server/sonar-web/src/main/js/apps/users/components/__tests__/UserListItemIdentity-test.tsx b/server/sonar-web/src/main/js/apps/users/components/__tests__/UserListItemIdentity-test.tsx new file mode 100644 index 00000000000..126e2aebac5 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/users/components/__tests__/UserListItemIdentity-test.tsx @@ -0,0 +1,86 @@ +/* + * 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 * as React from 'react'; +import { shallow } from 'enzyme'; +import UserListItemIdentity, { Props, ExternalProvider } from '../UserListItemIdentity'; + +describe('#UserListItemIdentity', () => { + it('should render correctly', () => { + expect(shallowRender()).toMatchSnapshot(); + }); + + function shallowRender(props: Partial = {}) { + return shallow( + + ); + } +}); + +describe('#ExternalProvider', () => { + it('should render correctly', () => { + expect(shallowRender()).toMatchSnapshot(); + }); + + it('should render the user external provider and identity', () => { + expect(shallowRender({ identityProvider: undefined })).toMatchSnapshot(); + }); + + function shallowRender(props: Partial = {}) { + return shallow( + + ); + } +}); diff --git a/server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UserListItemIdentity-test.tsx.snap b/server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UserListItemIdentity-test.tsx.snap new file mode 100644 index 00000000000..c9d65154d56 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UserListItemIdentity-test.tsx.snap @@ -0,0 +1,80 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`#ExternalProvider should render correctly 1`] = ` +
+
+ Foo Provider +
+
+`; + +exports[`#ExternalProvider should render the user external provider and identity 1`] = ` +
+ + foo + : + +
+`; + +exports[`#UserListItemIdentity should render correctly 1`] = ` + +
+ + One + + + obi + +
+
+ obi.one@empire +
+ + +`; -- cgit v1.2.3