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