parent
2ce3a69eca
commit
849af7a9ab
@ -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