implementing deployment failure in terminal

pull/5370/head
davidzagi93@gmail.com 3 years ago
parent a6753907bb
commit 787eaeaef1
  1. 1
      apps/remix-ide-e2e/src/tests/defaultLayout.test.ts
  2. 1
      apps/remix-ide-e2e/src/tests/libraryDeployment.test.ts
  3. 7
      apps/remix-ide/src/app/panels/terminal.js
  4. 25
      libs/remix-ui/terminal/src/lib/actions/terminalAction.ts
  5. 7
      libs/remix-ui/terminal/src/lib/reducers/terminalReducer.ts
  6. 20
      libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx

@ -50,6 +50,7 @@ module.exports = {
'Toggles Terminal': function (browser: NightwatchBrowser) {
browser.waitForElementVisible('div[data-id="terminalContainer"]')
.pause(5000)
.assert.visible('div[data-id="terminalContainerDisplay"]')
.click('i[data-id="terminalToggleIcon"]')
.checkElementStyle('div[data-id="terminalToggleMenu"]', 'height', '35px')

@ -77,6 +77,7 @@ function checkDeployShouldFail (browser: NightwatchBrowser, callback: VoidFuncti
.clickLaunchIcon('udapp')
.selectContract('test') // deploy lib
.createContract('')
.pause(60000)
.getText('div[class^="terminal"]', (value) => {
console.log('value: ', value)
})

@ -88,6 +88,7 @@ class Terminal extends Plugin {
this.call('menuicons', 'select', 'debugger')
this.call('debugger', 'debug', hash)
})
this.logHtmlResponse = []
}
onActivation () {
@ -102,8 +103,9 @@ class Terminal extends Plugin {
}
logHtml (html) {
var command = this.commands.html
if (typeof command === 'function') command(html)
// console.log({ html: html.innerText })
this.logHtmlResponse.push(html.innerText)
this.renderComponent()
}
render () {
@ -138,6 +140,7 @@ class Terminal extends Plugin {
commands = {this.commands}
txListener = {this.txListener}
eventsDecoder = {this.eventsDecoder}
logHtml = {this.logHtmlResponse}
/>,
this.element
)

@ -1,5 +1,6 @@
export const registerCommandAction = (name, command, activate, dispatch) => {
console.log(name, ' object key')
const commands: any = {}
const _commands: any = {}
_commands[name] = command
@ -90,6 +91,8 @@ export const registerCommandAction = (name, command, activate, dispatch) => {
console.log({ scopedCommands })
return scopedCommands
}
console.log('david test dispatch')
}
export const filterFnAction = (name, filterFn, dispatch) => {
@ -170,23 +173,8 @@ export const initListeningOnNetwork = (props, dispatch) => {
// log(this, tx, null)
})
props.txListener.event.register('newTransaction', (tx, receipt) => {
console.log('new Transaction now')
log(props, tx, receipt, dispatch)
registerCommandAction('knownTransaction', function (args, cmds, append) {
var data = args[0]
console.log({ data })
// let el
// if (data.tx.isCall) {
// console.log({ data })
// // el = renderCall(this, data)
// } else {
// // el = renderKnownTransaction(this, data, blockchain)
// }
// this.seen[data.tx.hash] = el
// append(el)
}, { activate: true }, dispatch)
// const result = Object.assign([], tx)
// console.log({ result })
// scriptRunnerDispatch({ type: 'knownTransaction', payload: { message: result } })
})
const log = async (props, tx, receipt, dispatch) => {
@ -214,9 +202,12 @@ export const initListeningOnNetwork = (props, dispatch) => {
props.txListener.event.register('debuggingRequested', async (hash) => {
// TODO should probably be in the run module
console.log({ hash }, 'register Call')
if (!await props.options.appManager.isActive('debugger')) await props.options.appManager.activatePlugin('debugger')
props.thisState.call('menuicons', 'select', 'debugger')
props.thisState.call('debugger', 'debug', hash)
})
props.thisState.on('udapp', 'logHtml', (log) => {
console.log({ log }, ' listen to logHTML call')
})
}

@ -141,9 +141,12 @@ export const remixWelcomeTextReducer = (state, action) => {
}
export const registerScriptRunnerReducer = (state, action) => {
const result = Object.assign([], action.payload.message)
console.log({ result })
switch (action.type) {
case 'html':
return {
...state,
journalBlocks: initialState.journalBlocks.push({ message: action.payload.message, style: 'text-log' })
}
case 'log':
return {
...state,

@ -44,7 +44,8 @@ export interface RemixUiTerminalProps {
registry: any,
commands: any,
txListener: any,
eventsDecoder: any
eventsDecoder: any,
logHtml: any
}
export interface ClipboardEvent<T = Element> extends SyntheticEvent<T, any> {
@ -102,6 +103,11 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => {
messagesEndRef.current.scrollIntoView({ behavior: 'smooth' })
}
useEffect(() => {
scriptRunnerDispatch({ type: 'html', payload: { message: props.logHtml } })
}, [props.logHtml])
console.log({ logHtml: props.logHtml })
// events
useEffect(() => {
initListeningOnNetwork(props, scriptRunnerDispatch)
@ -109,7 +115,6 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => {
registerInfoScriptRunnerAction(props.thisState, 'info', newstate.commands, scriptRunnerDispatch)
registerWarnScriptRunnerAction(props.thisState, 'warn', newstate.commands, scriptRunnerDispatch)
registerErrorScriptRunnerAction(props.thisState, 'error', newstate.commands, scriptRunnerDispatch)
registerCommandAction('html', _blocksRenderer('html'), { activate: true }, dispatch)
registerCommandAction('log', _blocksRenderer('log'), { activate: true }, dispatch)
registerCommandAction('info', _blocksRenderer('info'), { activate: true }, dispatch)
@ -118,12 +123,13 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => {
registerCommandAction('script', function execute (args, scopedCommands, append) {
var script = String(args[0])
console.log({ script }, 'script')
_shell(script, scopedCommands, function (error, output) {
if (error) scriptRunnerDispatch({ type: 'error', payload: { message: error } })
if (output) scriptRunnerDispatch({ type: 'script', payload: { message: '5' } })
})
}, { activate: true }, dispatch)
}, [props.thisState.autoCompletePopup, autoCompletState.text])
}, [props.thisState.autoCompletePopup, autoCompletState.text, props.logHtml])
useEffect(() => {
scrollToBottom()
@ -870,15 +876,15 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => {
{
handleAutoComplete()
}
<div data-id="terminalContainerDisplay" style = {{
<div data-id='terminalContainerDisplay' style = {{
position: 'absolute',
height: '100',
width: '100',
height: '100%',
width: '100%',
opacity: '0.1',
zIndex: -1
}}></div>
<div className="terminal">
<div id="journal" className="journal" data-id="terminalJournal">
<div id='journal' className='journal' data-id='terminalJournal'>
{!clearConsole && <TerminalWelcomeMessage packageJson={props.version}/>}
{newstate.journalBlocks && newstate.journalBlocks.map((x, index) => {
if (x.name === 'emptyBlock') {

Loading…
Cancel
Save