From 1507da139d8c4f54451c7ecdd02a589332c97c8e Mon Sep 17 00:00:00 2001 From: sdtsui Date: Thu, 13 Jul 2017 00:40:22 -0700 Subject: Add tests for new dropdown component --- test/unit/responsive/components/dropdown-test.js | 51 ++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 test/unit/responsive/components/dropdown-test.js (limited to 'test/unit') diff --git a/test/unit/responsive/components/dropdown-test.js b/test/unit/responsive/components/dropdown-test.js new file mode 100644 index 000000000..feadc792e --- /dev/null +++ b/test/unit/responsive/components/dropdown-test.js @@ -0,0 +1,51 @@ +var assert = require('assert'); + +const additions = require('react-testutils-additions'); +const h = require('react-hyperscript'); +const ReactTestUtils = require('react-addons-test-utils'); +const sinon = require('sinon'); +const path = require('path'); +const Dropdown = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'responsive', 'app', 'components', 'dropdown.js')).Dropdown; +const DropdownMenuItem = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'responsive', 'app', 'components', 'dropdown.js')).DropdownMenuItem; + +describe('Dropdown components', function () { + it('can render two items', function () { + const renderer = ReactTestUtils.createRenderer() + + const onClickOutside = sinon.spy(); + const closeMenu = sinon.spy(); + const onClick = sinon.spy(); + + const dropdownComponent = h(Dropdown, { + isOpen: true, + zIndex: 11, + onClickOutside, + style: { + position: 'absolute', + right: 0, + top: '36px', + }, + innerStyle: {}, + }, [ // DROP MENU ITEMS + h('style', ` + .drop-menu-item:hover { background:rgb(235, 235, 235); } + .drop-menu-item i { margin: 11px; } + `), + + h(DropdownMenuItem, { + closeMenu, + onClick, + }, 'Item 1'), + + h(DropdownMenuItem, { + closeMenu, + onClick, + }, 'Item 2'), + ]) + + const component = additions.renderIntoDocument(dropdownComponent); + renderer.render(dropdownComponent); + const items = additions.find(component, 'li'); + assert.equal(items.length, 2); + }); +}); \ No newline at end of file -- cgit From 2adfce772c91e28cb25145ad0beda40bd5aed7d4 Mon Sep 17 00:00:00 2001 From: sdtsui Date: Tue, 18 Jul 2017 05:23:25 -0700 Subject: Add new tests for dropdown component --- test/unit/responsive/components/dropdown-test.js | 108 ++++++++++++++++++----- 1 file changed, 86 insertions(+), 22 deletions(-) (limited to 'test/unit') diff --git a/test/unit/responsive/components/dropdown-test.js b/test/unit/responsive/components/dropdown-test.js index feadc792e..4d417d394 100644 --- a/test/unit/responsive/components/dropdown-test.js +++ b/test/unit/responsive/components/dropdown-test.js @@ -9,14 +9,18 @@ const Dropdown = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'res const DropdownMenuItem = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'responsive', 'app', 'components', 'dropdown.js')).DropdownMenuItem; describe('Dropdown components', function () { - it('can render two items', function () { - const renderer = ReactTestUtils.createRenderer() + let onClickOutside; + let closeMenu; + let onClick; - const onClickOutside = sinon.spy(); - const closeMenu = sinon.spy(); - const onClick = sinon.spy(); + let dropdownComponentProps; + const renderer = ReactTestUtils.createRenderer() + beforeEach(function () { + onClickOutside = sinon.spy(); + closeMenu = sinon.spy(); + onClick = sinon.spy(); - const dropdownComponent = h(Dropdown, { + dropdownComponentProps = { isOpen: true, zIndex: 11, onClickOutside, @@ -26,26 +30,86 @@ describe('Dropdown components', function () { top: '36px', }, innerStyle: {}, - }, [ // DROP MENU ITEMS - h('style', ` - .drop-menu-item:hover { background:rgb(235, 235, 235); } - .drop-menu-item i { margin: 11px; } - `), - - h(DropdownMenuItem, { - closeMenu, - onClick, - }, 'Item 1'), - - h(DropdownMenuItem, { - closeMenu, - onClick, - }, 'Item 2'), - ]) + } + }); + + it('can render two items', function () { + const dropdownComponent = h( + Dropdown, + dropdownComponentProps, + [ + h('style', ` + .drop-menu-item:hover { background:rgb(235, 235, 235); } + .drop-menu-item i { margin: 11px; } + `), + h(DropdownMenuItem, { + closeMenu, + onClick, + }, 'Item 1'), + h(DropdownMenuItem, { + closeMenu, + onClick, + }, 'Item 2'), + ] + ) const component = additions.renderIntoDocument(dropdownComponent); renderer.render(dropdownComponent); const items = additions.find(component, 'li'); assert.equal(items.length, 2); }); + + it('closes when item clicked', function() { + const dropdownComponent = h( + Dropdown, + dropdownComponentProps, + [ + h('style', ` + .drop-menu-item:hover { background:rgb(235, 235, 235); } + .drop-menu-item i { margin: 11px; } + `), + h(DropdownMenuItem, { + closeMenu, + onClick, + }, 'Item 1'), + h(DropdownMenuItem, { + closeMenu, + onClick, + }, 'Item 2'), + ] + ) + const component = additions.renderIntoDocument(dropdownComponent); + renderer.render(dropdownComponent); + const items = additions.find(component, 'li'); + const node = items[0]; + ReactTestUtils.Simulate.click(node); + assert.equal(closeMenu.calledOnce, true); + }); + + it('invokes click handler when item clicked', function() { + const dropdownComponent = h( + Dropdown, + dropdownComponentProps, + [ + h('style', ` + .drop-menu-item:hover { background:rgb(235, 235, 235); } + .drop-menu-item i { margin: 11px; } + `), + h(DropdownMenuItem, { + closeMenu, + onClick, + }, 'Item 1'), + h(DropdownMenuItem, { + closeMenu, + onClick, + }, 'Item 2'), + ] + ) + const component = additions.renderIntoDocument(dropdownComponent); + renderer.render(dropdownComponent); + const items = additions.find(component, 'li'); + const node = items[0]; + ReactTestUtils.Simulate.click(node); + assert.equal(onClick.calledOnce, true); + }); }); \ No newline at end of file -- cgit From 86d367957fe8ac04462f716fe0ba2bfa4e5ff3f6 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Thu, 20 Jul 2017 12:38:38 -0700 Subject: Move responsive ui into its own folder for easier merges --- test/unit/responsive/components/dropdown-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'test/unit') diff --git a/test/unit/responsive/components/dropdown-test.js b/test/unit/responsive/components/dropdown-test.js index 4d417d394..0472c541b 100644 --- a/test/unit/responsive/components/dropdown-test.js +++ b/test/unit/responsive/components/dropdown-test.js @@ -5,8 +5,8 @@ const h = require('react-hyperscript'); const ReactTestUtils = require('react-addons-test-utils'); const sinon = require('sinon'); const path = require('path'); -const Dropdown = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'responsive', 'app', 'components', 'dropdown.js')).Dropdown; -const DropdownMenuItem = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'responsive', 'app', 'components', 'dropdown.js')).DropdownMenuItem; +const Dropdown = require(path.join(__dirname, '..', '..', '..', '..', 'responsive-ui', 'app', 'components', 'dropdown.js')).Dropdown; +const DropdownMenuItem = require(path.join(__dirname, '..', '..', '..', '..', 'responsive-ui', 'app', 'components', 'dropdown.js')).DropdownMenuItem; describe('Dropdown components', function () { let onClickOutside; @@ -112,4 +112,4 @@ describe('Dropdown components', function () { ReactTestUtils.Simulate.click(node); assert.equal(onClick.calledOnce, true); }); -}); \ No newline at end of file +}); -- cgit From a22adec66fd0c541eb350ea424a6b00d179eedaf Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Mon, 24 Jul 2017 17:04:13 -0700 Subject: Replace ui with responsive-ui --- test/unit/responsive/components/dropdown-test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/unit') diff --git a/test/unit/responsive/components/dropdown-test.js b/test/unit/responsive/components/dropdown-test.js index 0472c541b..3ad2c390e 100644 --- a/test/unit/responsive/components/dropdown-test.js +++ b/test/unit/responsive/components/dropdown-test.js @@ -5,8 +5,8 @@ const h = require('react-hyperscript'); const ReactTestUtils = require('react-addons-test-utils'); const sinon = require('sinon'); const path = require('path'); -const Dropdown = require(path.join(__dirname, '..', '..', '..', '..', 'responsive-ui', 'app', 'components', 'dropdown.js')).Dropdown; -const DropdownMenuItem = require(path.join(__dirname, '..', '..', '..', '..', 'responsive-ui', 'app', 'components', 'dropdown.js')).DropdownMenuItem; +const Dropdown = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'app', 'components', 'dropdown.js')).Dropdown; +const DropdownMenuItem = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'app', 'components', 'dropdown.js')).DropdownMenuItem; describe('Dropdown components', function () { let onClickOutside; -- cgit From a8966c4a4fa03ba717ddf09c8b8cd6a19d97dfe3 Mon Sep 17 00:00:00 2001 From: frankiebee Date: Thu, 3 Aug 2017 22:02:31 -0400 Subject: fix test --- test/unit/actions/tx_test.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'test/unit') diff --git a/test/unit/actions/tx_test.js b/test/unit/actions/tx_test.js index 0ea1bfdc7..4561082fd 100644 --- a/test/unit/actions/tx_test.js +++ b/test/unit/actions/tx_test.js @@ -45,11 +45,16 @@ describe('tx confirmation screen', function () { before(function (done) { actions._setBackgroundConnection({ approveTransaction (txId, cb) { cb('An error!') }, - cancelTransaction (txId) { /* noop */ }, + cancelTransaction (txId, cb) { cb() }, clearSeedWordCache (cb) { cb() }, }) + // var dispatchExpect = sinon.mock() + // dispatchExpect.once() - const action = actions.cancelTx({value: firstTxId}) + let action + actions.cancelTx({value: firstTxId})((dispatchAction) => { + action = dispatchAction + }) result = reducers(initialState, action) done() }) -- cgit From b955b5a89a9ed7fd74cfec84cbf4b3623e4661e4 Mon Sep 17 00:00:00 2001 From: frankiebee Date: Thu, 3 Aug 2017 22:10:33 -0400 Subject: add test for no callback error --- test/unit/nodeify-test.js | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test/unit') diff --git a/test/unit/nodeify-test.js b/test/unit/nodeify-test.js index 06241334d..f4fe320ca 100644 --- a/test/unit/nodeify-test.js +++ b/test/unit/nodeify-test.js @@ -17,4 +17,15 @@ describe('nodeify', function () { done() }) }) + + it('should throw if the last argument is not a function', function (done) { + var nodified = nodeify(obj.promiseFunc, obj) + try { + nodified('baz') + done(new Error('should have thrown if the last argument is not a function')) + } catch (err) { + if (err.message === 'callback is not a function') done() + else done(err) + } + }) }) -- cgit From 500e7d1f04e72558fa8eb4aee60c24e5d7b71a94 Mon Sep 17 00:00:00 2001 From: kumavis Date: Thu, 3 Aug 2017 20:52:09 -0700 Subject: nodeify - test - syntax nitpick --- test/unit/nodeify-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'test/unit') diff --git a/test/unit/nodeify-test.js b/test/unit/nodeify-test.js index f4fe320ca..537dae605 100644 --- a/test/unit/nodeify-test.js +++ b/test/unit/nodeify-test.js @@ -19,13 +19,13 @@ describe('nodeify', function () { }) it('should throw if the last argument is not a function', function (done) { - var nodified = nodeify(obj.promiseFunc, obj) + const nodified = nodeify(obj.promiseFunc, obj) try { nodified('baz') done(new Error('should have thrown if the last argument is not a function')) } catch (err) { - if (err.message === 'callback is not a function') done() - else done(err) + assert.equal(err.message, 'callback is not a function') + done() } }) }) -- cgit From efb7543c6dba8a0a37044c1799a9aa906425ebd6 Mon Sep 17 00:00:00 2001 From: kumavis Date: Thu, 3 Aug 2017 20:53:47 -0700 Subject: test - actions - remove commented code --- test/unit/actions/tx_test.js | 2 -- 1 file changed, 2 deletions(-) (limited to 'test/unit') diff --git a/test/unit/actions/tx_test.js b/test/unit/actions/tx_test.js index 4561082fd..267cfee97 100644 --- a/test/unit/actions/tx_test.js +++ b/test/unit/actions/tx_test.js @@ -48,8 +48,6 @@ describe('tx confirmation screen', function () { cancelTransaction (txId, cb) { cb() }, clearSeedWordCache (cb) { cb() }, }) - // var dispatchExpect = sinon.mock() - // dispatchExpect.once() let action actions.cancelTx({value: firstTxId})((dispatchAction) => { -- cgit From d526f68c8e7d613ad79ec9383d6709651e5af77e Mon Sep 17 00:00:00 2001 From: kumavis Date: Thu, 3 Aug 2017 20:56:53 -0700 Subject: test - actions - tx - fix async test --- test/unit/actions/tx_test.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'test/unit') diff --git a/test/unit/actions/tx_test.js b/test/unit/actions/tx_test.js index 267cfee97..67c72e9a5 100644 --- a/test/unit/actions/tx_test.js +++ b/test/unit/actions/tx_test.js @@ -49,12 +49,11 @@ describe('tx confirmation screen', function () { clearSeedWordCache (cb) { cb() }, }) - let action - actions.cancelTx({value: firstTxId})((dispatchAction) => { - action = dispatchAction + actions.cancelTx({value: firstTxId})((action) => { + result = reducers(initialState, action) + done() }) - result = reducers(initialState, action) - done() + }) it('should transition to the account detail view', function () { -- cgit