parent
36bdf024c7
commit
a0621db3b2
@ -0,0 +1,15 @@ |
||||
import { NightwatchBrowser } from 'nightwatch' |
||||
import EventEmitter from "events" |
||||
|
||||
class JournalLastChild extends EventEmitter { |
||||
command (this: NightwatchBrowser, val: string): NightwatchBrowser { |
||||
this.api |
||||
.waitForElementVisible('*[data-id="terminalJournal"] > div:last-child', 10000) |
||||
.assert.containsText('*[data-id="terminalJournal"] > div:last-child', val).perform(() => { |
||||
this.emit('complete') |
||||
}) |
||||
return this |
||||
} |
||||
} |
||||
|
||||
module.exports = JournalLastChild |
@ -0,0 +1,117 @@ |
||||
'use strict' |
||||
import { NightwatchBrowser } from "nightwatch" |
||||
import init from '../helpers/init' |
||||
import sauce from './sauce' |
||||
|
||||
module.exports = { |
||||
before: function (browser: NightwatchBrowser, done: VoidFunction) { |
||||
init(browser, done, 'http://127.0.0.1:8080?plugins=solidity,udapp', false) |
||||
}, |
||||
|
||||
'Should execution a simple console command': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('*[data-id="terminalCli"]', 10000) |
||||
.executeScript('console.log(1 + 1)') |
||||
.journalLastChild('2') |
||||
}, |
||||
|
||||
'Should clear console': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('*[data-id="terminalCli"]') |
||||
.journalChildIncludes('Welcome to Remix') |
||||
.click('#clearConsole') |
||||
.assert.containsText('*[data-id="terminalJournal"]', '') |
||||
}, |
||||
|
||||
'Should display auto-complete menu': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('*[data-id="terminalCli"]') |
||||
.click('*[data-id="terminalCli"]') |
||||
.sendKeys('*[data-id="terminalCliInput"]', 'remix.') |
||||
.assert.visible('*[data-id="autoCompletePopUpAutoCompleteItem"]') |
||||
}, |
||||
|
||||
'Should execute remix.help() command': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('*[data-id="terminalCli"]') |
||||
.executeScript('remix.help()') |
||||
.journalChildIncludes('remix.call(message: {name, key, payload})') |
||||
.journalChildIncludes('remix.getFile(path)') |
||||
.journalChildIncludes('remix.debug(hash)') |
||||
.journalChildIncludes('remix.loadgist(id)') |
||||
.journalChildIncludes('remix.loadurl(url)') |
||||
.journalChildIncludes('remix.setproviderurl(url)') |
||||
.journalChildIncludes('remix.execute(filepath)') |
||||
.journalChildIncludes('remix.exeCurrent()') |
||||
.journalChildIncludes('remix.help()') |
||||
.journalChildIncludes('remix.debugHelp()') |
||||
}, |
||||
|
||||
'Should execute remix.debugHelp() command': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('*[data-id="terminalCli"]') |
||||
.executeScript('remix.debugHelp()') |
||||
.journalChildIncludes('Here are some examples of scripts that can be run (using remix.exeCurrent() or directly from the console)') |
||||
.journalChildIncludes('Please see https://www.npmjs.com/package/remix-debug for more informations') |
||||
}, |
||||
|
||||
'Async/Await Script': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.addFile('asyncAwait.js', { content: asyncAwait }) |
||||
.openFile('browser/asyncAwait.js') |
||||
.executeScript(`remix.execute('browser/asyncAwait.js')`) |
||||
.journalLastChild('Waiting Promise') |
||||
.pause(5500) |
||||
.journalLastChild('result - Promise Resolved') |
||||
}, |
||||
|
||||
'Call Remix File Manager from a script': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.addFile('asyncAwaitWithFileManagerAccess.js', { content: asyncAwaitWithFileManagerAccess }) |
||||
.openFile('browser/asyncAwaitWithFileManagerAccess.js') |
||||
.pause(5000) |
||||
.executeScript(`remix.execute('browser/asyncAwaitWithFileManagerAccess.js')`) |
||||
.pause(6000) |
||||
.journalLastChildIncludes('contract Ballot {') |
||||
.end() |
||||
}, |
||||
|
||||
tearDown: sauce |
||||
} |
||||
|
||||
const asyncAwait = ` |
||||
var p = function () { |
||||
return new Promise(function (resolve, reject) { |
||||
setTimeout(function () { |
||||
resolve("Promise Resolved") |
||||
}, 5000) |
||||
}) |
||||
} |
||||
|
||||
var run = async () => { |
||||
console.log('Waiting Promise') |
||||
var result = await p() |
||||
console.log('result - ', result) |
||||
} |
||||
|
||||
run() |
||||
` |
||||
|
||||
const asyncAwaitWithFileManagerAccess = ` |
||||
var p = function () { |
||||
return new Promise(function (resolve, reject) { |
||||
setTimeout(function () { |
||||
resolve("Promise Resolved") |
||||
}, 0) |
||||
}) |
||||
} |
||||
|
||||
var run = async () => { |
||||
console.log('Waiting Promise') |
||||
var result = await p() |
||||
let text = await remix.call('fileManager', 'readFile', 'browser/3_Ballot.sol') |
||||
console.log('result - ', text) |
||||
} |
||||
|
||||
run() |
||||
` |
Loading…
Reference in new issue