select a test file done

pull/1862/head
Aniket-Engg 3 years ago committed by Aniket
parent cdab7c36cb
commit 6d0498decc
  1. 49
      libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx

@ -27,16 +27,14 @@ export const SolidityUnitTesting = (props: any) => {
const [runButtonTitle, setRunButtonTitle] = useState('Run tests') const [runButtonTitle, setRunButtonTitle] = useState('Run tests')
const [stopButtonLabel, setStopButtonLabel] = useState('Stop') const [stopButtonLabel, setStopButtonLabel] = useState('Stop')
const [checkSelectAll, setCheckSelectAll] = useState(true) const [checkSelectAll, setCheckSelectAll] = useState(true)
const [checkSingleTest, setCheckSingleTest] = useState(true)
const [testsExecutionStoppedHidden, setTestsExecutionStoppedHidden] = useState(true) const [testsExecutionStoppedHidden, setTestsExecutionStoppedHidden] = useState(true)
const [testsExecutionStoppedErrorHidden, setTestsExecutionStoppedErrorHidden] = useState(true) const [testsExecutionStoppedErrorHidden, setTestsExecutionStoppedErrorHidden] = useState(true)
// const [testsMessage, setTestsMessage] = useState('No test file available') let [testFiles, setTestFiles] = useState<TestObject[]>([])
var [testFiles, setTestFiles] = useState<TestObject[]>([])
const [pathOptions, setPathOptions] = useState(['']) const [pathOptions, setPathOptions] = useState([''])
let [allTests, setAllTests] = useState([]) let [allTests, setAllTests] = useState([])
let [selectedTests, setSelectedTests] = useState([]) let [selectedTests, setSelectedTests] = useState<string[]>([])
const [inputPathValue, setInputPathValue] = useState('tests') const [inputPathValue, setInputPathValue] = useState('tests')
@ -78,7 +76,7 @@ export const SolidityUnitTesting = (props: any) => {
allTests = [] allTests = []
updateTestFileList() updateTestFileList()
clearResults() clearResults()
if (!areTestsRunning) updateRunAction(file) // if (!areTestsRunning) updateRunAction(file)
try { try {
testTabLogic.getTests((error: any, tests: any) => { testTabLogic.getTests((error: any, tests: any) => {
// if (error) return tooltip(error) // if (error) return tooltip(error)
@ -201,7 +199,7 @@ export const SolidityUnitTesting = (props: any) => {
const updateRunAction = (currentFile : any = null) => { const updateRunAction = (currentFile : any = null) => {
console.log('updateRunAction --currentFile-->', currentFile) console.log('updateRunAction --currentFile-->', currentFile)
const isSolidityActive = testTab.appManager.isActive('solidity') const isSolidityActive = testTab.appManager.isActive('solidity')
if (!isSolidityActive || !testFiles?.length) { if (!isSolidityActive || !selectedTests?.length) {
setDisableRunButton(true) setDisableRunButton(true)
if (!currentFile || (currentFile && currentFile.split('.').pop().toLowerCase() !== 'sol')) { if (!currentFile || (currentFile && currentFile.split('.').pop().toLowerCase() !== 'sol')) {
setRunButtonTitle('No solidity file selected') setRunButtonTitle('No solidity file selected')
@ -219,22 +217,17 @@ export const SolidityUnitTesting = (props: any) => {
setDisableRunButton(true) setDisableRunButton(true)
} }
const toggleCheckbox = (eChecked: any, test:any) => { const getCurrentSelectedTests = () => {
console.log('toggleCheckbox--->', test, eChecked) let selectedTestsList: TestObject[] = testFiles.filter(testFileObj => testFileObj.checked)
console.log('toggleCheckbox--selectedTests1->', selectedTests) return selectedTestsList.map(testFileObj => testFileObj.fileName)
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}`) const toggleCheckbox = (eChecked: any, index:any) => {
// console.log('toggleCheckbox--clickElem->', clickElem, `singleTest${test}`) testFiles[index].checked = eChecked
// if(eChecked) clickElem?.setAttribute('checked', 'checked') setTestFiles(testFiles)
// else clickElem?.removeAttribute('checked') selectedTests = getCurrentSelectedTests()
console.log('selectedTests----->', selectedTests)
setSelectedTests(selectedTests)
if (eChecked) { if (eChecked) {
setCheckSelectAll(true) setCheckSelectAll(true)
if ((readyTestsNumber === runningTestsNumber || hasBeenStopped) && stopButtonLabel.trim() === 'Stop') { if ((readyTestsNumber === runningTestsNumber || hasBeenStopped) && stopButtonLabel.trim() === 'Stop') {
@ -245,13 +238,21 @@ export const SolidityUnitTesting = (props: any) => {
setCheckSelectAll(false) setCheckSelectAll(false)
setDisableRunButton(true) setDisableRunButton(true)
setRunButtonTitle('No test file selected') setRunButtonTitle('No test file selected')
} } else setCheckSelectAll(false)
} }
const checkAll = (event: any) => { const checkAll = (event: any) => {
testFiles.forEach((testFileObj) => testFileObj.checked = event.target.checked) testFiles.forEach((testFileObj) => testFileObj.checked = event.target.checked)
setTestFiles(testFiles) setTestFiles(testFiles)
setCheckSelectAll(event.target.checked) setCheckSelectAll(event.target.checked)
if(event.target.checked) {
selectedTests = getCurrentSelectedTests()
setSelectedTests(selectedTests)
setDisableRunButton(false)
} else {
setSelectedTests([])
setDisableRunButton(true)
}
} }
const updateTestFileList = () => { const updateTestFileList = () => {
@ -351,12 +352,12 @@ export const SolidityUnitTesting = (props: any) => {
/> />
<label className="text-nowrap pl-2 mb-0" htmlFor="checkAllTests"> Select all </label> <label className="text-nowrap pl-2 mb-0" htmlFor="checkAllTests"> Select all </label>
</div> </div>
<div className="testList py-2 mt-0 border-bottom">{testFiles?.length ? testFiles.map((testFileObj: any) => { <div className="testList py-2 mt-0 border-bottom">{testFiles?.length ? testFiles.map((testFileObj: any, index) => {
console.log('testFileObj----->', testFileObj) console.log('testFileObj----->', testFileObj)
const elemId = `singleTest${testFileObj.fileName}` const elemId = `singleTest${testFileObj.fileName}`
return ( return (
<div className="d-flex align-items-center py-1"> <div className="d-flex align-items-center py-1">
<input className="singleTest" id={elemId} onChange={(e) => toggleCheckbox(e.target.checked, testFileObj.fileName)} type="checkbox" checked={testFileObj.checked}/> <input className="singleTest" id={elemId} onChange={(e) => toggleCheckbox(e.target.checked, index)} type="checkbox" checked={testFileObj.checked}/>
<label className="singleTestLabel text-nowrap pl-2 mb-0" htmlFor={elemId}>{testFileObj.fileName}</label> <label className="singleTestLabel text-nowrap pl-2 mb-0" htmlFor={elemId}>{testFileObj.fileName}</label>
</div> </div>
) )

Loading…
Cancel
Save