From b53d04c40975adc0fadf20bc6ca875bd9c39e595 Mon Sep 17 00:00:00 2001 From: kumavis Date: Wed, 13 Sep 2017 20:25:27 -0700 Subject: [PATCH] tests - integration - get flat and mascara tests closer to compatible --- development/index.html | 4 +- development/test.html | 5 +- mascara/src/ui.js | 8 +- mascara/test/lib/first-time.js | 119 ----------------------------- mascara/test/test-ui.js | 1 - mock-dev.js | 4 +- test/integration/lib/first-time.js | 12 +-- test/mascara.conf.js | 3 + ui-dev.js | 4 +- 9 files changed, 18 insertions(+), 142 deletions(-) delete mode 100644 mascara/test/lib/first-time.js diff --git a/development/index.html b/development/index.html index 048aa3f35..a0814cb55 100644 --- a/development/index.html +++ b/development/index.html @@ -14,13 +14,13 @@ diff --git a/development/test.html b/development/test.html index 702be7fa0..49084c0a4 100644 --- a/development/test.html +++ b/development/test.html @@ -18,13 +18,14 @@ diff --git a/mascara/src/ui.js b/mascara/src/ui.js index 5662270c1..7506532d2 100644 --- a/mascara/src/ui.js +++ b/mascara/src/ui.js @@ -2,8 +2,6 @@ const injectCss = require('inject-css') const SWcontroller = require('client-sw-ready-event/lib/sw-client.js') const SwStream = require('sw-stream/lib/sw-stream.js') const MetaMaskUiCss = require('../../ui/css') -const setupIframe = require('./lib/setup-iframe.js') -const MetamaskInpageProvider = require('../../app/scripts/lib/inpage-provider.js') const MetamascaraPlatform = require('../../app/scripts/platforms/window') const startPopup = require('../../app/scripts/popup-core') @@ -32,7 +30,7 @@ const connectApp = function (readSw) { serviceWorker: background.controller, context: name, }) - startPopup({container, connectionStream}, (err, store) => { + startPopup({ container, connectionStream }, (err, store) => { if (err) return displayCriticalError(err) store.subscribe(() => { const state = store.getState() @@ -49,8 +47,8 @@ background.on('updatefound', windowReload) background.startWorker() .then(() => { setTimeout(() => { - const appContent = document.getElementById(`app-content`) - if (!appContent.children.length) windowReload() + const container = document.getElementById(`app-content`) + if (!container.children.length) windowReload() }, 2000) }) console.log('hello from MetaMascara ui!') diff --git a/mascara/test/lib/first-time.js b/mascara/test/lib/first-time.js deleted file mode 100644 index e42c9e39d..000000000 --- a/mascara/test/lib/first-time.js +++ /dev/null @@ -1,119 +0,0 @@ -const PASSWORD = 'password123' - -QUnit.module('first time usage') - -QUnit.test('render init screen', function (assert) { - var done = assert.async() - let app - - wait(1000).then(function() { - app = $('#app-content').contents() - const recurseNotices = function () { - let button = app.find('button') - if (button.html() === 'Accept') { - let termsPage = app.find('.markdown')[0] - termsPage.scrollTop = termsPage.scrollHeight - return wait().then(() => { - button.click() - return wait() - }).then(() => { - return recurseNotices() - }) - } else { - return wait() - } - } - return recurseNotices() - }).then(function() { - // Scroll through terms - var title = app.find('h1').text() - assert.equal(title, 'MetaMask', 'title screen') - - // enter password - var pwBox = app.find('#password-box')[0] - var confBox = app.find('#password-box-confirm')[0] - pwBox.value = PASSWORD - confBox.value = PASSWORD - - return wait() - }).then(function() { - - // create vault - var createButton = app.find('button.primary')[0] - createButton.click() - - return wait(1500) - }).then(function() { - - var created = app.find('h3')[0] - assert.equal(created.textContent, 'Vault Created', 'Vault created screen') - - // Agree button - var button = app.find('button')[0] - assert.ok(button, 'button present') - button.click() - - return wait(1000) - }).then(function() { - - var detail = app.find('.account-detail-section')[0] - assert.ok(detail, 'Account detail section loaded.') - - var sandwich = app.find('.sandwich-expando')[0] - sandwich.click() - - return wait() - }).then(function() { - - var sandwich = app.find('.menu-droppo')[0] - var children = sandwich.children - var lock = children[children.length - 2] - assert.ok(lock, 'Lock menu item found') - lock.click() - - return wait(1000) - }).then(function() { - - var pwBox = app.find('#password-box')[0] - pwBox.value = PASSWORD - - var createButton = app.find('button.primary')[0] - createButton.click() - - return wait(1000) - }).then(function() { - - var detail = app.find('.account-detail-section')[0] - assert.ok(detail, 'Account detail section loaded again.') - - return wait() - }).then(function (){ - - var qrButton = app.find('.fa.fa-qrcode')[0] - qrButton.click() - - return wait(1000) - }).then(function (){ - - var qrHeader = app.find('.qr-header')[0] - var qrContainer = app.find('#qr-container')[0] - assert.equal(qrHeader.textContent, 'Account 1', 'Should show account label.') - assert.ok(qrContainer, 'QR Container found') - - return wait() - }).then(function (){ - - var networkMenu = app.find('.network-indicator')[0] - networkMenu.click() - - return wait() - }).then(function (){ - - var networkMenu = app.find('.network-indicator')[0] - var children = networkMenu.children - children.length[3] - assert.ok(children, 'All network options present') - - done() - }) -}) diff --git a/mascara/test/test-ui.js b/mascara/test/test-ui.js index ebeffe8cb..201eec601 100644 --- a/mascara/test/test-ui.js +++ b/mascara/test/test-ui.js @@ -7,7 +7,6 @@ window.addEventListener('load', () => { const container = document.createElement('div') container.id = 'app-content' body.appendChild(container) - // start ui require('../src/ui.js') }) diff --git a/mock-dev.js b/mock-dev.js index 452fe37c5..a47f1ed4d 100644 --- a/mock-dev.js +++ b/mock-dev.js @@ -94,7 +94,7 @@ startApp() function startApp(){ const body = document.body const container = document.createElement('div') - container.id = 'app-content' + container.id = 'test-container' body.appendChild(container) render( @@ -112,7 +112,7 @@ function startApp(){ h(Selector, { actions, selectedKey: selectedView, states, store }), - h('.mock-app-root', { + h('#app-content', { style: { height: '500px', width: '360px', diff --git a/test/integration/lib/first-time.js b/test/integration/lib/first-time.js index 38a94e551..e023351bc 100644 --- a/test/integration/lib/first-time.js +++ b/test/integration/lib/first-time.js @@ -10,19 +10,11 @@ QUnit.test('render init screen', (assert) => { }) }) -// 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 timeout() - const app = $('#app-content .mock-app-root') + const app = $('#app-content') // recurse notices while (true) { @@ -32,10 +24,12 @@ async function runFirstTimeUsageTest(assert, done) { const termsPage = app.find('.markdown')[0] termsPage.scrollTop = termsPage.scrollHeight await timeout() + console.log('Clearing notice') button.click() await timeout() } else { // exit loop + console.log('No more notices...') break } } diff --git a/test/mascara.conf.js b/test/mascara.conf.js index b4ec5846f..97e53fc2b 100644 --- a/test/mascara.conf.js +++ b/test/mascara.conf.js @@ -10,5 +10,8 @@ module.exports = function(config) { settings.files.push({ pattern: 'dist/mascara/background.js', watched: false, included: false, served: true }), settings.proxies['/background.js'] = '/base/dist/mascara/background.js' + // use this to keep the browser open for debugging + settings.browserNoActivityTimeout = 10000000 + config.set(settings) } diff --git a/ui-dev.js b/ui-dev.js index 367b5d546..de5dfd8ef 100644 --- a/ui-dev.js +++ b/ui-dev.js @@ -61,7 +61,7 @@ const actions = { var css = MetaMaskUiCss() injectCss(css) -const container = document.querySelector('#app-content') +const container = document.querySelector('#test-container') // parse opts var store = configureStore(states[selectedView]) @@ -72,7 +72,7 @@ render( h(Selector, { actions, selectedKey: selectedView, states, store }), - h('.mock-app-root', { + h('#app-content', { style: { height: '500px', width: '360px',