Skip to content

Commit 880a3d3

Browse files
authored
Merge pull request #3876 from ethereum/ssa-button-fix
Static Analyzers Run Button Fix
2 parents 97c9408 + 0d0410d commit 880a3d3

File tree

3 files changed

+50
-33
lines changed

3 files changed

+50
-33
lines changed

apps/remix-ide-e2e/src/tests/staticAnalysis.test.ts

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,32 @@ module.exports = {
3333
},
3434
'run analysis and filter results': function (browser: NightwatchBrowser) {
3535
browser
36-
.clickLaunchIcon('filePanel')
37-
.click('*[data-id="treeViewLitreeViewItemcontracts"]')
38-
.click('*[data-id="treeViewLitreeViewItemcontracts/2_Owner.sol"]')
39-
.clickLaunchIcon('solidity')
40-
.click('*[id="compileBtn"]')
41-
.pause(10000)
42-
.clickLaunchIcon('solidityStaticAnalysis')
43-
.click('*[id="staticAnalysisRunBtn"]')
44-
.waitForElementPresent('#staticanalysisresult .warning', 5000)
45-
// Check warning count
46-
.click('*[data-rb-event-key="remix"]')
47-
.assert.containsText('span#ssaRemixtab > *[data-id="RemixStaticAnalysisErrorCount"]', '1')
48-
.verify.elementPresent('input[name="showLibWarnings"]')
49-
.verify.not.elementPresent('input[name="showLibWarnings"]:checked')
50-
.verify.elementPresent('label[id="headingshowLibWarnings"]')
51-
.click('label[id="headingshowLibWarnings"]')
52-
.pause(1000)
53-
.click('*[data-rb-event-key="remix"]')
54-
.assert.containsText('span#ssaRemixtab > *[data-id="RemixStaticAnalysisErrorCount', '382')
55-
.click('label[id="headingshowLibWarnings"]')
56-
.pause(1000)
57-
.assert.containsText('span#ssaRemixtab > *[data-id="RemixStaticAnalysisErrorCount', '1')
58-
.end()
36+
.clickLaunchIcon('filePanel')
37+
.click('*[data-id="treeViewLitreeViewItemcontracts"]')
38+
.click('*[data-id="treeViewLitreeViewItemcontracts/2_Owner.sol"]')
39+
.clickLaunchIcon('solidity')
40+
.click('*[id="compileBtn"]')
41+
.pause(10000)
42+
.clickLaunchIcon('solidityStaticAnalysis')
43+
.useXpath()
44+
.click('//*[@id="staticAnalysisRunBtn"]')
45+
// .waitForElementPresent('div#staticanalysisresult .warning', 5000)
46+
.waitForElementPresent('//*[@id="staticanalysisresult"]', 5000)
47+
.useCss()
48+
// Check warning count
49+
.click('*[data-rb-event-key="remix"]')
50+
.assert.containsText('span#ssaRemixtab > *[data-id="RemixStaticAnalysisErrorCount"]', '1')
51+
.verify.elementPresent('input[name="showLibWarnings"]')
52+
.verify.not.elementPresent('input[name="showLibWarnings"]:checked')
53+
.verify.elementPresent('label[id="headingshowLibWarnings"]')
54+
.click('label[id="headingshowLibWarnings"]')
55+
.pause(1000)
56+
.click('*[data-rb-event-key="remix"]')
57+
.assert.containsText('span#ssaRemixtab > *[data-id="RemixStaticAnalysisErrorCount', '382')
58+
.click('label[id="headingshowLibWarnings"]')
59+
.pause(1000)
60+
.assert.containsText('span#ssaRemixtab > *[data-id="RemixStaticAnalysisErrorCount', '1')
61+
.end()
5962
}
6063
}
6164

@@ -72,8 +75,8 @@ function runTests (browser: NightwatchBrowser) {
7275
'Fallback function of contract TooMuchGas requires too much gas',
7376
'TooMuchGas.() : Variables have very similar names "test" and "test1".',
7477
'TooMuchGas.() : Variables have very similar names "test" and "test1".'],
75-
'#staticanalysisresult .warning',
76-
browser
78+
'#staticanalysisresult .warning',
79+
browser
7780
)
7881
})
7982
}

libs/remix-ui/static-analyser/src/lib/Button/StaticAnalyserButton.tsx

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,45 @@ const StaticAnalyserButton = ({
1616
title,
1717
classList
1818
}: StaticAnalyserButtonProps) => {
19-
const defaultStyle = "btn btn-sm w-25 btn-primary"
19+
const defaultStyle = "btn btn-sm btn-block btn-primary"
2020
const newclassList = disabled && classList.length > 0 ? `${classList} disabled` :
2121
classList.length === 0 && disabled ? `${defaultStyle} disabled` : classList.length > 0 ? `${classList}` : defaultStyle
2222

2323
const buttonWithoutTooltip = () => (
24-
<button id="staticAnalysisRunBtn" className={newclassList} disabled={disabled} onClick={onClick}>
24+
<button
25+
id="staticAnalysisRunBtn"
26+
className={newclassList}
27+
disabled={disabled}
28+
onClick={onClick}
29+
>
2530
<span className="pl-3 pr-4">
2631
{buttonText}
2732
</span>
2833
</button>
2934
)
3035

3136
const buttonWithTooltip = () => (
32-
<button id="staticAnalysisRunBtn" className={newclassList} disabled={disabled} onClick={onClick}>
3337
<CustomTooltip
3438
placement="right"
3539
tooltipId="ssaRunButtonTooltip"
3640
tooltipClasses="text-nowrap"
3741
tooltipText={title}
3842
>
39-
<span className="pl-3 pr-4">
40-
{buttonText}
41-
</span>
43+
<div id="staticAnalysisWrapper" className={`${newclassList} p-0`}>
44+
<button
45+
id="staticAnalysisRunBtn"
46+
className={newclassList}
47+
disabled={disabled}
48+
onClick={onClick}
49+
style={{ pointerEvents: 'none', color: 'white' }}
50+
>
51+
<span className="pl-3 pr-4">
52+
{buttonText}
53+
</span>
54+
</button>
55+
</div>
4256
</CustomTooltip>
43-
</button>)
57+
)
4458

4559
return (
4660
title && title.length > 0 ? buttonWithTooltip() : buttonWithoutTooltip()

libs/remix-ui/static-analyser/src/lib/remix-ui-static-analyser.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => {
130130
`${
131131
state && state.data && state.file.length > 0
132132
? "Run analysis"
133-
: "To run analysis tools, first compile a contract."
133+
: "To run analysis for selected tools, first compile a contract"
134134
}`
135135
);
136136
}

0 commit comments

Comments
 (0)