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 5facd4bee6..8a8db9b8b9 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 @@ -22,11 +22,13 @@ export const SolidityUnitTesting = (props: any) => { const [runButtonTitle, setRunButtonTitle] = useState('Run tests') const [stopButtonLabel, setStopButtonLabel] = useState('Stop') const [checkSelectAll, setCheckSelectAll] = useState(true) + const [checkSingleTest, setCheckSingleTest] = useState(true) const [testsExecutionStoppedHidden, setTestsExecutionStoppedHidden] = useState(true) const [testsExecutionStoppedErrorHidden, setTestsExecutionStoppedErrorHidden] = useState(true) - const [testsMessage, setTestsMessage] = useState('No test file available') + // const [testsMessage, setTestsMessage] = useState('No test file available') + var [testFiles, setTestFiles] = useState([{}]) const [pathOptions, setPathOptions] = useState(['']) let [allTests, setAllTests] = useState([]) let [selectedTests, setSelectedTests] = useState([]) @@ -79,7 +81,7 @@ export const SolidityUnitTesting = (props: any) => { allTests = tests selectedTests = [...allTests] setSelectedTests(tests) - updateTestFileList(tests) + updateTestFileList() // if (!this.testsOutput) return // eslint-disable-line }) } catch (e) { @@ -192,7 +194,7 @@ export const SolidityUnitTesting = (props: any) => { const updateRunAction = (currentFile : any = null) => { console.log('updateRunAction --currentFile-->', currentFile) const isSolidityActive = testTab.appManager.isActive('solidity') - if (!isSolidityActive || !listTests().length) { + if (!isSolidityActive || !testFiles.length) { setDisableRunButton(true) if (!currentFile || (currentFile && currentFile.split('.').pop().toLowerCase() !== 'sol')) { setRunButtonTitle('No solidity file selected') @@ -211,13 +213,21 @@ export const SolidityUnitTesting = (props: any) => { } const toggleCheckbox = (eChecked: any, test:any) => { - console.log('toggleCheckbox--->', test) + console.log('toggleCheckbox--->', test, eChecked) + console.log('toggleCheckbox--selectedTests1->', selectedTests) if (!selectedTests) { // this.data.selectedTests = this._view.el.querySelectorAll('.singleTest:checked') } let selectedTestsList: any = selectedTests selectedTests = eChecked ? [...selectedTestsList, test] : selectedTestsList.filter((el:any) => el !== test) + setSelectedTests(selectedTests) + // console.log('toggleCheckbox--selectedTests2->', selectedTests) + // const clickElem = document.getElementById(`singleTest${test}`) + // console.log('toggleCheckbox--clickElem->', clickElem, `singleTest${test}`) + // if(eChecked) clickElem?.setAttribute('checked', 'checked') + // else clickElem?.removeAttribute('checked') + if (eChecked) { setCheckSelectAll(true) if ((readyTestsNumber === runningTestsNumber || hasBeenStopped) && stopButtonLabel.trim() === 'Stop') { @@ -243,29 +253,12 @@ export const SolidityUnitTesting = (props: any) => { } } - const createSingleTest = (testFile: string) => { - const checked = true - const elemId = `singleTest${testFile}` - return ( -
- toggleCheckbox(e.target.checked, testFile)} type="checkbox" checked={checked}/> - -
- ) - } - - const listTests = () => { - console.log('listTests--->', allTests) - if (!allTests || !allTests.length) return [] - return allTests.map( - testFile => createSingleTest(testFile) - ) - } - - const updateTestFileList = (tests = []) => { - console.log('updateTestFileList--tests->', tests) - const testsMsg: any = (tests && tests.length) ? listTests() : 'No test file available' - setTestsMessage(testsMsg) + const updateTestFileList = () => { + console.log('updateTestFileList--tests->', allTests) + if(allTests?.length) { + testFiles = allTests.map((testFile) => { return {'fileName': testFile, 'checked': true }}) + setTestFiles(testFiles) + } } const createResultLabel = () => { @@ -351,7 +344,17 @@ export const SolidityUnitTesting = (props: any) => { /> -
{testsMessage}
+
{testFiles.length ? testFiles.map((testFileObj: any) => { + console.log('testFileObj----->', testFileObj) + const elemId = `singleTest${testFileObj.fileName}` + return ( +
+ toggleCheckbox(e.target.checked, testFileObj.fileName)} type="checkbox" checked={testFileObj.fileName}/> + +
+ ) + }) + : "No test file available" }
{resultStatistics}