useRef for selectedTests

pull/5370/head
aniket-engg 3 years ago committed by Aniket
parent b7e8cc5f93
commit 6a7d0b77e0
  1. 30
      libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx

@ -37,7 +37,6 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
let [testFiles, setTestFiles] = useState<TestObject[]>([]) // eslint-disable-line let [testFiles, setTestFiles] = useState<TestObject[]>([]) // eslint-disable-line
const [pathOptions, setPathOptions] = useState(['']) const [pathOptions, setPathOptions] = useState([''])
let [selectedTests, setSelectedTests] = useState<string[]>([]) // eslint-disable-line
const [inputPathValue, setInputPathValue] = useState('tests') const [inputPathValue, setInputPathValue] = useState('tests')
@ -49,6 +48,8 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
let areTestsRunning = false let areTestsRunning = false
let isDebugging = false let isDebugging = false
const allTests: any = useRef([]) const allTests: any = useRef([])
const selectedTests: any = useRef([])
let currentErrors: any = [] let currentErrors: any = []
let runningTestFileName: any let runningTestFileName: any
@ -88,8 +89,7 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
testTabLogic.getTests(async (error: any, tests: any) => { testTabLogic.getTests(async (error: any, tests: any) => {
// if (error) return tooltip(error) // if (error) return tooltip(error)
allTests.current = tests allTests.current = tests
selectedTests = [...allTests.current] selectedTests.current = [...allTests.current]
setSelectedTests(tests)
updateTestFileList() updateTestFileList()
if (!areTestsRunning) await updateRunAction(file) if (!areTestsRunning) await updateRunAction(file)
}) })
@ -118,15 +118,13 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
testTabLogic.getTests((error: any, tests: any) => { testTabLogic.getTests((error: any, tests: any) => {
// if (error) return tooltip(error) // if (error) return tooltip(error)
allTests.current = tests allTests.current = tests
selectedTests = [...allTests.current] selectedTests.current = [...allTests.current]
setSelectedTests(tests)
updateTestFileList() updateTestFileList()
}) })
} catch (e) { } catch (e) {
console.log(e) console.log(e)
allTests.current.push(file) allTests.current.push(file)
selectedTests.push(file) selectedTests.current.push(file)
setSelectedTests(selectedTests)
} }
}) })
@ -490,7 +488,7 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
// All tests are ready or the operation has been canceled or there was a compilation error in one of the test files. // All tests are ready or the operation has been canceled or there was a compilation error in one of the test files.
setDisableStopButton(true) setDisableStopButton(true)
setStopButtonLabel('Stop') setStopButtonLabel('Stop')
if (selectedTests.length !== 0) { if (selectedTests.current?.length !== 0) {
setDisableRunButton(false) setDisableRunButton(false)
} }
areTestsRunning = false areTestsRunning = false
@ -544,12 +542,12 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
hasBeenStopped.current = false hasBeenStopped.current = false
readyTestsNumber = 0 readyTestsNumber = 0
setReadyTestsNumber(readyTestsNumber) setReadyTestsNumber(readyTestsNumber)
runningTestsNumber = selectedTests.length runningTestsNumber = selectedTests.current.length
setRunningTestsNumber(runningTestsNumber) setRunningTestsNumber(runningTestsNumber)
setDisableStopButton(false) setDisableStopButton(false)
clearResults() clearResults()
setProgressBarHidden(false) setProgressBarHidden(false)
const tests = selectedTests const tests = selectedTests.current
if (!tests || !tests.length) return if (!tests || !tests.length) return
else setProgressBarHidden(false) else setProgressBarHidden(false)
_paq.push(['trackEvent', 'solidityUnitTesting', 'runTests']) _paq.push(['trackEvent', 'solidityUnitTesting', 'runTests'])
@ -561,7 +559,7 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
const updateRunAction = async (currentFile : any = null) => { const updateRunAction = async (currentFile : any = null) => {
const isSolidityActive = await testTab.appManager.isActive('solidity') const isSolidityActive = await testTab.appManager.isActive('solidity')
if (!isSolidityActive || !selectedTests?.length) { if (!isSolidityActive || !selectedTests.current?.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')
@ -586,15 +584,14 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
const toggleCheckbox = (eChecked: any, index:any) => { const toggleCheckbox = (eChecked: any, index:any) => {
testFiles[index].checked = eChecked testFiles[index].checked = eChecked
setTestFiles(testFiles) setTestFiles(testFiles)
selectedTests = getCurrentSelectedTests() selectedTests.current = getCurrentSelectedTests()
setSelectedTests(selectedTests)
if (eChecked) { if (eChecked) {
setCheckSelectAll(true) setCheckSelectAll(true)
setDisableRunButton(false) setDisableRunButton(false)
if ((readyTestsNumber === runningTestsNumber || hasBeenStopped.current) && stopButtonLabel.trim() === 'Stop') { if ((readyTestsNumber === runningTestsNumber || hasBeenStopped.current) && stopButtonLabel.trim() === 'Stop') {
setRunButtonTitle('Run tests') setRunButtonTitle('Run tests')
} }
} else if (!selectedTests.length) { } else if (!selectedTests.current.length) {
setCheckSelectAll(false) setCheckSelectAll(false)
setDisableRunButton(true) setDisableRunButton(true)
setRunButtonTitle('No test file selected') setRunButtonTitle('No test file selected')
@ -606,11 +603,10 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
setTestFiles(testFiles) setTestFiles(testFiles)
setCheckSelectAll(event.target.checked) setCheckSelectAll(event.target.checked)
if(event.target.checked) { if(event.target.checked) {
selectedTests = getCurrentSelectedTests() selectedTests.current = getCurrentSelectedTests()
setSelectedTests(selectedTests)
setDisableRunButton(false) setDisableRunButton(false)
} else { } else {
setSelectedTests([]) selectedTests.current = []
setDisableRunButton(true) setDisableRunButton(true)
} }
} }

Loading…
Cancel
Save