diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2018-02-16 11:19:36 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2018-02-16 11:19:36 +0100 |
| commit | 5f15a7bec3e2a50162e54488c5a3f519b9553586 (patch) | |
| tree | 9d61e6b951139dfb061c1898b7eb0aab4c5e3e73 /test | |
| parent | c6d4b3a2370fa6feeaaf33f0425127753e93039e (diff) | |
| parent | 89eeb129f065d92a82393db2deca58c0c0f2ff38 (diff) | |
| download | mullvadvpn-5f15a7bec3e2a50162e54488c5a3f519b9553586.tar.xz mullvadvpn-5f15a7bec3e2a50162e54488c5a3f519b9553586.zip | |
Merge branch 'buttons'
Diffstat (limited to 'test')
| -rw-r--r-- | test/components/Account.spec.js | 42 | ||||
| -rw-r--r-- | test/components/Settings.spec.js | 6 |
2 files changed, 29 insertions, 19 deletions
diff --git a/test/components/Account.spec.js b/test/components/Account.spec.js index a8b8e3d501..ccdb1d2117 100644 --- a/test/components/Account.spec.js +++ b/test/components/Account.spec.js @@ -2,7 +2,8 @@ import { expect } from 'chai'; import React from 'react'; -import ReactTestUtils, { Simulate } from 'react-dom/test-utils'; +import { shallow } from 'enzyme'; +require('../setup/enzyme'); import Account from '../../app/components/Account'; import type { AccountReduxState } from '../../app/redux/account/reducers'; @@ -27,34 +28,28 @@ describe('components/Account', () => { return Object.assign({}, defaultProps, mergeProps); }; - const render = (props: AccountProps): Account => { - return ReactTestUtils.renderIntoDocument( - <Account { ...props } /> - ); - }; - it('should call close callback', (done) => { const props = makeProps(state, { onClose: () => done() }); - const domNode = ReactTestUtils.findRenderedDOMComponentWithClass(render(props), 'account__close'); - Simulate.click(domNode); + const component = getComponent(render(props), 'account__close'); + click(component); }); it('should call logout callback', (done) => { const props = makeProps(state, { onLogout: () => done() }); - const domNode = ReactTestUtils.findRenderedDOMComponentWithClass(render(props), 'account__logout'); - Simulate.click(domNode); + const component = getComponent(render(props), 'account__logout'); + click(component); }); it('should call "buy more" callback', (done) => { const props = makeProps(state, { onBuyMore: () => done() }); - const domNode = ReactTestUtils.findRenderedDOMComponentWithClass(render(props), 'account__buymore'); - Simulate.click(domNode); + const component = getComponent(render(props), 'account__buymore'); + click(component); }); it('should display "out of time" message when account expired', () => { @@ -66,13 +61,28 @@ describe('components/Account', () => { error: null }; const props = makeProps(expiredState, {}); - ReactTestUtils.findRenderedDOMComponentWithClass(render(props), 'account__out-of-time'); + const component = getComponent(render(props), 'account__out_of_time'); + expect(component).to.have.length(1); }); it('should not display "out of time" message when account is active', () => { const props = makeProps(state, {}); - const domNodes = ReactTestUtils.scryRenderedDOMComponentsWithClass(render(props), 'account__out-of-time'); - expect(domNodes.length).to.be.equal(0); + const component = getComponent(render(props), 'account__out_of_time'); + expect(component).to.have.length(0); }); }); + +function render(props) { + return shallow( + <Account {...props} /> + ); +} + +function getComponent(container, testName) { + return container.findWhere( n => n.prop('testName') === testName); +} + +function click(component) { + component.prop('onPress')(); +} diff --git a/test/components/Settings.spec.js b/test/components/Settings.spec.js index fc6b73f17c..8f0e4a73d4 100644 --- a/test/components/Settings.spec.js +++ b/test/components/Settings.spec.js @@ -108,13 +108,13 @@ describe('components/Settings', () => { it('should show out-of-time message for unpaid account', () => { const props = makeProps(unpaidAccountState, settingsState); - const component = getComponent(render(props), 'settings__account_paid_until_label'); + const component = getComponent(render(props), 'settings__account_paid_until_subtext'); expect(component.children().text()).to.equal('OUT OF TIME'); }); it('should hide out-of-time message for paid account', () => { const props = makeProps(loggedInAccountState, settingsState); - const component = getComponent(render(props), 'settings__account_paid_until_label'); + const component = getComponent(render(props), 'settings__account_paid_until_subtext'); expect(component.children().text()).not.to.equal('OUT OF TIME'); }); @@ -138,7 +138,7 @@ describe('components/Settings', () => { const props = makeProps(loggedInAccountState, settingsState, { onViewAccount: () => done() }); - const component = getComponent(render(props), 'settings__view_account'); + const component = getComponent(render(props), 'settings__account_paid_until_button'); click(component); }); |
