From 4af1842ea3ae48b505c1ed25106fd02edc0cd2e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= Date: Tue, 10 Jul 2018 16:37:01 +0200 Subject: [PATCH 1/3] change password and username --- scm-ui/src/modules/login.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scm-ui/src/modules/login.js b/scm-ui/src/modules/login.js index 53e2049ec8..13df980e93 100644 --- a/scm-ui/src/modules/login.js +++ b/scm-ui/src/modules/login.js @@ -66,8 +66,8 @@ export function login(username: string, password: string) { var login_data = { cookie: true, grant_type: "password", - password: username, - username: password + username, + password, }; return function(dispatch) { dispatch(loginRequest()); From af0de44172a44fc8d03adb203fcd9af48a81baf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= Date: Tue, 10 Jul 2018 16:37:27 +0200 Subject: [PATCH 2/3] deleteuserbutton is only a component --- .../src/users/containers/DeleteUserButton.js | 48 ++++++++----------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/scm-ui/src/users/containers/DeleteUserButton.js b/scm-ui/src/users/containers/DeleteUserButton.js index 195e603ae8..c26dc56fb6 100644 --- a/scm-ui/src/users/containers/DeleteUserButton.js +++ b/scm-ui/src/users/containers/DeleteUserButton.js @@ -1,46 +1,36 @@ // @flow import React from "react"; -import { deleteUser } from '../modules/users'; -import {connect} from "react-redux"; type Props = { user: any, - deleteUser: (username: string) => void + deleteUser: (link: string) => void }; class DeleteUser extends React.Component { deleteUser = () => { - this.props.deleteUser(this.props.user.name); + this.props.deleteUser(this.props.user._links.delete.href); + }; + + if(deleteButtonClicked) { + let deleteButtonAsk =
You really want to remove this user?
+ } + + isDeletable = () => { + return this.props.user._links.delete; }; render() { - if(this.props.user._links.delete) { - return ( - - - ); + if (!this.isDeletable()) { + return; } + return ( + + + ); } } -const mapStateToProps = state => { - return { - users: state.users.users - }; -}; - -const mapDispatchToProps = dispatch => { - return { - deleteUser: (username: string) => { - dispatch(deleteUser(username)); - } - }; -}; - -export default connect( - mapStateToProps, - mapDispatchToProps -)(DeleteUser); +export default DeleteUser; From 56848400217b3044c0c4afcdd38b2c6a40108bcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= Date: Tue, 10 Jul 2018 16:37:40 +0200 Subject: [PATCH 3/3] add tests for view of delete button --- scm-ui/package.json | 5 +- .../users/containers/DeleteUserButton.test.js | 54 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 scm-ui/src/users/containers/DeleteUserButton.test.js diff --git a/scm-ui/package.json b/scm-ui/package.json index c91b237aa5..84776009b5 100644 --- a/scm-ui/package.json +++ b/scm-ui/package.json @@ -32,7 +32,10 @@ } }, "devDependencies": { - "prettier": "^1.13.7" + "enzyme": "^3.3.0", + "enzyme-adapter-react-16": "^1.1.1", + "prettier": "^1.13.7", + "react-test-renderer": "^16.4.1" }, "babel": { "presets": [ diff --git a/scm-ui/src/users/containers/DeleteUserButton.test.js b/scm-ui/src/users/containers/DeleteUserButton.test.js new file mode 100644 index 0000000000..efda995c86 --- /dev/null +++ b/scm-ui/src/users/containers/DeleteUserButton.test.js @@ -0,0 +1,54 @@ +import React from 'react'; +import {configure, shallow} from 'enzyme'; +import DeleteUserButton from "./DeleteUserButton"; +import Adapter from 'enzyme-adapter-react-16'; + +import 'raf/polyfill'; + +configure({ adapter: new Adapter() }); + +it('should render nothing, if the delete link is missing', () => { + + const user = { + _links: {} + }; + + const button = shallow(); + expect(button.text()).toBe(""); +}); + +it('should render the button', () => { + + const user = { + _links: { + "delete": { + "href": "/users" + } + } + }; + + const button = shallow(); + expect(button.text()).not.toBe(""); +}); + +it('should call the delete user function with delete url', () => { + + const user = { + _links: { + "delete": { + "href": "/users" + } + } + }; + + let calledUrl = null; + + function capture(url) { + calledUrl = url; + } + + const button = shallow(); + button.simulate("click"); + + expect(calledUrl).toBe("/users"); +});