diff options
Diffstat (limited to 'test/integration')
-rw-r--r-- | test/integration/helpers.js | 7 | ||||
-rw-r--r-- | test/integration/index.js | 19 | ||||
-rw-r--r-- | test/integration/lib/first-time.js | 59 |
3 files changed, 52 insertions, 33 deletions
diff --git a/test/integration/helpers.js b/test/integration/helpers.js deleted file mode 100644 index 10cd74e64..000000000 --- a/test/integration/helpers.js +++ /dev/null @@ -1,7 +0,0 @@ -function wait(time) { - return new Promise(function (resolve, reject) { - setTimeout(function () { - resolve() - }, time * 3 || 1500) - }) -} diff --git a/test/integration/index.js b/test/integration/index.js index e089fc39b..144303dbb 100644 --- a/test/integration/index.js +++ b/test/integration/index.js @@ -1,5 +1,6 @@ const fs = require('fs') const path = require('path') +const pump = require('pump') const browserify = require('browserify') const tests = fs.readdirSync(path.join(__dirname, 'lib')) const bundlePath = path.join(__dirname, 'bundle.js') @@ -9,11 +10,17 @@ const b = browserify() const writeStream = fs.createWriteStream(bundlePath) tests.forEach(function (fileName) { - b.add(path.join(__dirname, 'lib', fileName)) + const filePath = path.join(__dirname, 'lib', fileName) + console.log(`bundling test "${filePath}"`) + b.add(filePath) }) -b.bundle() -.pipe(writeStream) -.on('error', (err) => { - throw err -}) +pump( + b.bundle(), + writeStream, + (err) => { + if (err) throw err + console.log(`Integration test build completed: "${bundlePath}"`) + process.exit(0) + } +)
\ No newline at end of file diff --git a/test/integration/lib/first-time.js b/test/integration/lib/first-time.js index cc56b3704..38a94e551 100644 --- a/test/integration/lib/first-time.js +++ b/test/integration/lib/first-time.js @@ -5,31 +5,42 @@ QUnit.module('first time usage') QUnit.test('render init screen', (assert) => { const done = assert.async() runFirstTimeUsageTest(assert).then(done).catch((err) => { - assert.notOk(err, 'Should not error') + assert.notOk(err, `Error was thrown: ${err.stack}`) done() }) }) +// QUnit.testDone(({ module, name, total, passed, failed, skipped, todo, runtime }) => { +// if (failed > 0) { +// const app = $('iframe').contents()[0].documentElement +// console.warn('Test failures - dumping DOM:') +// console.log(app.innerHTML) +// } +// }) + async function runFirstTimeUsageTest(assert, done) { - await wait() - const app = $('iframe').contents().find('#app-content .mock-app-root') + await timeout() + + const app = $('#app-content .mock-app-root') - const recurseNotices = async () => { + // recurse notices + while (true) { const button = app.find('button') if (button.html() === 'Accept') { + // still notices to accept const termsPage = app.find('.markdown')[0] termsPage.scrollTop = termsPage.scrollHeight - await wait() + await timeout() button.click() - await wait() - await recurseNotices() + await timeout() } else { - await wait() + // exit loop + break } } - await recurseNotices() + await timeout() // Scroll through terms const title = app.find('h1').text() @@ -41,13 +52,13 @@ async function runFirstTimeUsageTest(assert, done) { pwBox.value = PASSWORD confBox.value = PASSWORD - await wait() + await timeout() // create vault const createButton = app.find('button.primary')[0] createButton.click() - await wait(1500) + await timeout(1500) const created = app.find('h3')[0] assert.equal(created.textContent, 'Vault Created', 'Vault created screen') @@ -57,7 +68,7 @@ async function runFirstTimeUsageTest(assert, done) { assert.ok(button, 'button present') button.click() - await wait(1000) + await timeout(1000) const detail = app.find('.account-detail-section')[0] assert.ok(detail, 'Account detail section loaded.') @@ -65,7 +76,7 @@ async function runFirstTimeUsageTest(assert, done) { const sandwich = app.find('.sandwich-expando')[0] sandwich.click() - await wait() + await timeout() const menu = app.find('.menu-droppo')[0] const children = menu.children @@ -73,7 +84,7 @@ async function runFirstTimeUsageTest(assert, done) { assert.ok(lock, 'Lock menu item found') lock.click() - await wait(1000) + await timeout(1000) const pwBox2 = app.find('#password-box')[0] pwBox2.value = PASSWORD @@ -81,39 +92,47 @@ async function runFirstTimeUsageTest(assert, done) { const createButton2 = app.find('button.primary')[0] createButton2.click() - await wait(1000) + await timeout(1000) const detail2 = app.find('.account-detail-section')[0] assert.ok(detail2, 'Account detail section loaded again.') - await wait() + await timeout() // open account settings dropdown const qrButton = app.find('.fa.fa-ellipsis-h')[0] qrButton.click() - await wait(1000) + await timeout(1000) // qr code item const qrButton2 = app.find('.dropdown-menu-item')[1] qrButton2.click() - await wait(1000) + await timeout(1000) const qrHeader = app.find('.qr-header')[0] const qrContainer = app.find('#qr-container')[0] assert.equal(qrHeader.textContent, 'Account 1', 'Should show account label.') assert.ok(qrContainer, 'QR Container found') - await wait() + await timeout() const networkMenu = app.find('.network-indicator')[0] networkMenu.click() - await wait() + await timeout() const networkMenu2 = app.find('.network-indicator')[0] const children2 = networkMenu2.children children2.length[3] assert.ok(children2, 'All network options present') +} + +function timeout(time) { + return new Promise(function (resolve, reject) { + setTimeout(function () { + resolve() + }, time * 3 || 1500) + }) }
\ No newline at end of file |