diff --git a/scm-ui/jest.config.js b/scm-ui/jest.config.js new file mode 100644 index 0000000000..a5e135724b --- /dev/null +++ b/scm-ui/jest.config.js @@ -0,0 +1,4 @@ +module.exports = { + collectCoverage: true, + coverageFormats: ["json", "html"] +}; diff --git a/scm-ui/src/users/containers/EditUserButton.js b/scm-ui/src/users/containers/EditUserButton.js new file mode 100644 index 0000000000..37a65bbbe3 --- /dev/null +++ b/scm-ui/src/users/containers/EditUserButton.js @@ -0,0 +1,29 @@ +//@flow +import React from "react"; +import type { User } from "../types/User"; + +type Props = { + user: User, + editUser: User => void +}; + +type State = {}; + +class EditUserButton extends React.Component { + render() { + if (!this.isEditable()) { + return ""; + } + return ( + + ); + } + + isEditable = () => { + return this.props.user._links.update; + }; +} + +export default EditUserButton; diff --git a/scm-ui/src/users/containers/EditUserButton.test.js b/scm-ui/src/users/containers/EditUserButton.test.js new file mode 100644 index 0000000000..a916be12f0 --- /dev/null +++ b/scm-ui/src/users/containers/EditUserButton.test.js @@ -0,0 +1,31 @@ +import React from "react"; +import { configure, shallow } from "enzyme"; +import EditUserButton from "./EditUserButton"; +import Adapter from "enzyme-adapter-react-16"; + +import "raf/polyfill"; + +configure({ adapter: new Adapter() }); + +it("should render nothing, if the edit link is missing", () => { + const user = { + _links: {} + }; + + const button = shallow(); + expect(button.text()).toBe(""); +}); + +it("should render the button", () => { + const user = { + _links: { + update: { + href: "/users" + } + } + }; + + const button = shallow(); + expect(button.text()).not.toBe(""); +}); + diff --git a/scm-ui/src/users/types/UserEntry.js b/scm-ui/src/users/types/UserEntry.js new file mode 100644 index 0000000000..5ab609d02c --- /dev/null +++ b/scm-ui/src/users/types/UserEntry.js @@ -0,0 +1,7 @@ +type UserEntry = { + loading: boolean, + error: Error, + user: User +}; + +export type UserEntry; \ No newline at end of file