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");
+});