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') 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 v1.2.3 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') 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 v1.2.3 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') 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 v1.2.3 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') 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 v1.2.3 From 44616483e032241a63c49abec752aa8ef16551d2 Mon Sep 17 00:00:00 2001 From: kumavis Date: Thu, 3 Aug 2017 21:40:32 -0700 Subject: test - integration - throw error on failure --- test/integration/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/integration/index.js b/test/integration/index.js index 85f91d92b..e9263c6c8 100644 --- a/test/integration/index.js +++ b/test/integration/index.js @@ -17,7 +17,7 @@ try { }) b.bundle().pipe(writeStream) -} catch (e) { - console.error('Integration build failure', e) +} catch (err) { + throw new Error('Integration tests build failure - ' + err.stack) } -- cgit v1.2.3 From 925edd5f7decfc3272b6ad5bf9b44ca8504fd0c8 Mon Sep 17 00:00:00 2001 From: kumavis Date: Thu, 3 Aug 2017 21:50:17 -0700 Subject: test - integration - remove unused code --- test/integration/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/integration/index.js b/test/integration/index.js index e9263c6c8..549b7d37c 100644 --- a/test/integration/index.js +++ b/test/integration/index.js @@ -8,7 +8,9 @@ var b = browserify() // Remove old bundle try { - fs.unlinkSync(bundlePath) + // if (fs.existsSync(bundlePath)) { + // fs.unlinkSync(bundlePath) + // } var writeStream = fs.createWriteStream(bundlePath) -- cgit v1.2.3 From f804567d24cd3e0bd6d8dd77f637da79207c5e08 Mon Sep 17 00:00:00 2001 From: kumavis Date: Thu, 3 Aug 2017 21:50:41 -0700 Subject: test - integration - syntax - prefer const --- test/integration/index.js | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'test') diff --git a/test/integration/index.js b/test/integration/index.js index 549b7d37c..ab418a146 100644 --- a/test/integration/index.js +++ b/test/integration/index.js @@ -1,18 +1,13 @@ -var fs = require('fs') -var path = require('path') -var browserify = require('browserify') -var tests = fs.readdirSync(path.join(__dirname, 'lib')) -var bundlePath = path.join(__dirname, 'bundle.js') +const fs = require('fs') +const path = require('path') +const browserify = require('browserify') +const tests = fs.readdirSync(path.join(__dirname, 'lib')) +const bundlePath = path.join(__dirname, 'bundle.js') -var b = browserify() +const b = browserify() -// Remove old bundle try { - // if (fs.existsSync(bundlePath)) { - // fs.unlinkSync(bundlePath) - // } - - var writeStream = fs.createWriteStream(bundlePath) + const writeStream = fs.createWriteStream(bundlePath) tests.forEach(function (fileName) { b.add(path.join(__dirname, 'lib', fileName)) -- cgit v1.2.3 From 0a5a46b8f40d6f52a96f0fee96f271dd66a506ab Mon Sep 17 00:00:00 2001 From: kumavis Date: Thu, 3 Aug 2017 22:24:22 -0700 Subject: test - integration - better error handling --- test/integration/index.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'test') diff --git a/test/integration/index.js b/test/integration/index.js index ab418a146..e089fc39b 100644 --- a/test/integration/index.js +++ b/test/integration/index.js @@ -6,15 +6,14 @@ const bundlePath = path.join(__dirname, 'bundle.js') const b = browserify() -try { - const writeStream = fs.createWriteStream(bundlePath) +const writeStream = fs.createWriteStream(bundlePath) - tests.forEach(function (fileName) { - b.add(path.join(__dirname, 'lib', fileName)) - }) - - b.bundle().pipe(writeStream) -} catch (err) { - throw new Error('Integration tests build failure - ' + err.stack) -} +tests.forEach(function (fileName) { + b.add(path.join(__dirname, 'lib', fileName)) +}) +b.bundle() +.pipe(writeStream) +.on('error', (err) => { + throw err +}) -- cgit v1.2.3 From f37f405d5273ce6387132e4e9887d6b578b74fea Mon Sep 17 00:00:00 2001 From: sdtsui Date: Fri, 4 Aug 2017 23:34:54 -0700 Subject: Fix integration test failures: ensure qr code is accessible --- test/integration/lib/first-time.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/integration/lib/first-time.js b/test/integration/lib/first-time.js index 6c8cedbac..0e4b802da 100644 --- a/test/integration/lib/first-time.js +++ b/test/integration/lib/first-time.js @@ -90,7 +90,13 @@ QUnit.test('render init screen', function (assert) { return wait() }).then(function (){ - var qrButton = app.find('.fa.fa-qrcode')[0] + var qrButton = app.find('.fa.fa-ellipsis-h')[0] // open account settings dropdown + qrButton.click() + + return wait(1000) + }).then(function (){ + + var qrButton = app.find('.dropdown-menu-item')[1] // qr code item qrButton.click() return wait(1000) -- cgit v1.2.3