From d6abe34c88a588384b83c5e5b948f630ea636583 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Fri, 17 Dec 2021 20:38:16 +0530 Subject: [PATCH] show errors --- .../src/lib/solidity-unit-testing.tsx | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx b/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx index 7dc60eebaf..2d0259d229 100644 --- a/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx +++ b/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx @@ -2,6 +2,7 @@ import React, { useState, useRef, useEffect, CSSProperties } from 'react' // esl // import { TestTabLogic } from './logic/testTabLogic' var async = require('async') import { canUseWorker, urlFromVersion } from '@remix-project/remix-solidity' +import { Renderer } from '@remix-ui/renderer' // eslint-disable-line import { format } from 'util' import './css/style.css' @@ -344,13 +345,11 @@ export const SolidityUnitTesting = (props: any) => { const fileTestsResult = testsResultByFilename[filename] const contracts = Object.keys(fileTestsResult) for(const contract of contracts) { - if(contract && contract !== 'summary') { + if(contract && contract !== 'summary' && contract !== 'errors') { runningTestFileName = cleanFileName(filename, contract) - const { tests, errors} = fileTestsResult[contract] + const tests = fileTestsResult[contract] if (tests?.length) { renderTests(tests, contract, filename) - } else if (errors) { - console.log('errors---->', errors) } else { // show only contract and file name const contractCard: any = ( @@ -360,6 +359,24 @@ export const SolidityUnitTesting = (props: any) => { ) setTestsOutput(prevCards => ([...prevCards, contractCard])) } + } else if (contract === 'errors' && fileTestsResult['errors']) { + const errors = fileTestsResult['errors'] + console.log('errors---->', errors) + if (errors && errors.errors) { + errors.errors.forEach((err: any) => { + const errorCard: any = + setTestsOutput(prevCards => ([...prevCards, errorCard])) + }) + } else if (errors && Array.isArray(errors) && (errors[0].message || errors[0].formattedMessage)) { + errors.forEach((err) => { + const errorCard: any = + setTestsOutput(prevCards => ([...prevCards, errorCard])) + }) + } else if (errors && !errors.errors && !Array.isArray(errors)) { + // To track error like this: https://github.com/ethereum/remix/pull/1438 + const errorCard: any = + setTestsOutput(prevCards => ([...prevCards, errorCard])) + } } } // show summary @@ -387,11 +404,11 @@ export const SolidityUnitTesting = (props: any) => { } if(result.type === 'contract') { testsResultByFilename[result.filename][result.value]= {} - testsResultByFilename[result.filename][result.value].tests = [] + testsResultByFilename[result.filename][result.value] = [] } else { // Set that this test is not rendered on UI result.rendered = false - testsResultByFilename[result.filename][result.context]['tests'].push(result) + testsResultByFilename[result.filename][result.context].push(result) } showTestsResult() } @@ -429,7 +446,11 @@ export const SolidityUnitTesting = (props: any) => { testsResultByFilename[filename]['summary']= testsSummary showTestsResult() } else if (_errors) { + if(!testsResultByFilename[filename]) { + testsResultByFilename[filename] = {} + } testsResultByFilename[filename]['errors'] = _errors + showTestsResult() } // result.errors.forEach((error, index) => {