Skip to content

Commit a18b39b

Browse files
authored
Merge pull request #2786 from ethereum/testss
Unit Testing: show message for error in test file
2 parents f1ca3df + 9c5f35a commit a18b39b

File tree

2 files changed

+23
-13
lines changed

2 files changed

+23
-13
lines changed

src/app/tabs/test-tab.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,14 @@ module.exports = class TestTab extends ViewPlugin {
136136
this.rawFileName = result.filename
137137
this.runningTestFileName = this.cleanFileName(this.rawFileName, this.testSuite)
138138
this.outputHeader = yo`
139-
<div id="${this.runningTestFileName}" class="pt-1">
139+
<div id="${this.runningTestFileName}" data-id="testTabSolidityUnitTestsOutputheader" class="pt-1">
140140
<span class="font-weight-bold">${this.testSuite} (${this.rawFileName})</span>
141141
</div>
142142
`
143143
this.testsOutput.appendChild(this.outputHeader)
144144
} else if (result.type === 'testPass') {
145145
this.testsOutput.appendChild(yo`
146-
<div id="${this.runningTestFileName}" class="${css.testPass} ${css.testLog} text-success border-0">
146+
<div id="${this.runningTestFileName}" data-id="testTabSolidityUnitTestsOutputheader" class="${css.testPass} ${css.testLog} text-success border-0">
147147
${result.value}
148148
</div>
149149
`)
@@ -181,7 +181,7 @@ module.exports = class TestTab extends ViewPlugin {
181181
`
182182

183183
this.outputHeader && yo.update(this.outputHeader, yo`
184-
<div id="${this.runningTestFileName}" class="pt-1">
184+
<div id="${this.runningTestFileName}" data-id="testTabSolidityUnitTestsOutputheader" class="pt-1">
185185
${label} <span class="font-weight-bold">${this.testSuite} (${this.rawFileName})</span>
186186
</div>
187187
`)
@@ -196,7 +196,7 @@ module.exports = class TestTab extends ViewPlugin {
196196
`
197197

198198
this.outputHeader && yo.update(this.outputHeader, yo`
199-
<div id="${this.runningTestFileName}" class="pt-1">
199+
<div id="${this.runningTestFileName}" data-id="testTabSolidityUnitTestsOutputheader" class="pt-1">
200200
${label} <span class="font-weight-bold">${this.testSuite} (${this.rawFileName})</span>
201201
</div>
202202
`)
@@ -273,6 +273,7 @@ module.exports = class TestTab extends ViewPlugin {
273273
// if all tests has been through before stopping no need to print this.
274274
this.testsExecutionStopped.hidden = false
275275
}
276+
if (_errors) this.testsExecutionStoppedError.hidden = false
276277
if (_errors || this.hasBeenStopped || this.readyTestsNumber === this.runningTestsNumber) {
277278
// All tests are ready or the operation has been canceled or there was a compilation error in one of the test files.
278279
const stopBtn = document.getElementById('runTestsTabStopAction')
@@ -364,6 +365,7 @@ module.exports = class TestTab extends ViewPlugin {
364365
this.testsOutput.innerHTML = ''
365366
this.testsOutput.hidden = true
366367
this.testsExecutionStopped.hidden = true
368+
this.testsExecutionStoppedError.hidden = true
367369
const tests = this.data.selectedTests
368370
if (!tests) return
369371
this.resultStatistics.hidden = tests.length === 0
@@ -484,7 +486,9 @@ module.exports = class TestTab extends ViewPlugin {
484486
this.onActivationInternal()
485487
this.testsOutput = yo`<div class="mx-3 mb-2 pb-4 border-top border-primary" hidden='true' id="solidityUnittestsOutput" data-id="testTabSolidityUnitTestsOutput"></a>`
486488
this.testsExecutionStopped = yo`<label class="text-warning h6" data-id="testTabTestsExecutionStopped">The test execution has been stopped</label>`
489+
this.testsExecutionStoppedError = yo`<label class="text-danger h6" data-id="testTabTestsExecutionStoppedError">The test execution has been stopped because of error(s) in your test file</label>`
487490
this.testsExecutionStopped.hidden = true
491+
this.testsExecutionStoppedError.hidden = true
488492
this.resultStatistics = this.createResultLabel()
489493
this.resultStatistics.hidden = true
490494
const el = yo`
@@ -507,6 +511,7 @@ module.exports = class TestTab extends ViewPlugin {
507511
<div class="align-items-start flex-column mt-2 mx-3 mb-0">
508512
${this.resultStatistics}
509513
${this.testsExecutionStopped}
514+
${this.testsExecutionStoppedError}
510515
</div>
511516
${this.testsOutput}
512517
</div>

test-browser/tests/solidityUnittests.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@ module.exports = {
4444
.click('*[data-id="testTabCheckAllTests"]')
4545
.clickElementAtPosition('.singleTestLabel', 1)
4646
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
47-
.pause(15000)
48-
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/simple_storage_test.sol')
47+
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 80000)
48+
.pause(5000)
49+
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'MyTest (browser/simple_storage_test.sol)')
4950
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✓ Initial value should be100')
5051
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✓ Value is set200')
5152
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✘ Should fail for wrong value200')
@@ -63,12 +64,14 @@ module.exports = {
6364
.click('*[data-id="testTabCheckAllTests"]')
6465
.clickElementAtPosition('.singleTestLabel', 2)
6566
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
66-
.pause(20000)
67+
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
68+
.pause(5000)
6769
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/ks2b_test.sol')
6870
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✓ Check project exists')
6971
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✘ Check wrong project owner')
7072
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✘ Check wrong sender')
7173
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✘ Check wrong value')
74+
.pause(5000)
7275
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✓ Check project is fundable')
7376
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'owner is incorrect')
7477
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'wrong sender')
@@ -85,11 +88,11 @@ module.exports = {
8588
.click('*[data-id="testTabRunTestsTabStopAction"]')
8689
.pause(2000)
8790
.assert.containsText('*[data-id="testTabRunTestsTabStopAction"]', 'Stopping')
88-
.pause(10000)
91+
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
8992
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/ks2b_test.sol')
9093
.notContainsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/4_Ballot_test.sol')
9194
.notContainsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/simple_storage_test.sol')
92-
.pause(5000)
95+
.pause(6000)
9396
.assert.containsText('*[data-id="testTabTestsExecutionStopped"]', 'The test execution has been stopped')
9497
},
9598

@@ -102,9 +105,10 @@ module.exports = {
102105
.click('*[data-id="testTabCheckAllTests"]')
103106
.clickElementAtPosition('.singleTestLabel', 3)
104107
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
105-
.pause(10000)
108+
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
106109
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutput"]')
107110
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'SyntaxError: No visibility specified')
111+
.assert.containsText('*[data-id="testTabTestsExecutionStoppedError"]', 'The test execution has been stopped because of error(s) in your test file')
108112
},
109113

110114
'Should fail on deploy': function (browser) {
@@ -116,7 +120,7 @@ module.exports = {
116120
.click('*[data-id="testTabCheckAllTests"]')
117121
.clickElementAtPosition('.singleTestLabel', 4)
118122
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
119-
.pause(10000)
123+
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
120124
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutput"]')
121125
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'contract deployment failed after trying twice')
122126
},
@@ -130,7 +134,7 @@ module.exports = {
130134
.click('*[data-id="testTabCheckAllTests"]')
131135
.clickElementAtPosition('.singleTestLabel', 5)
132136
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
133-
.pause(15000)
137+
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
134138
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutput"]')
135139
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', `Method 'add' can not have parameters inside a test contract`)
136140
},
@@ -150,8 +154,9 @@ function runTests (browser) {
150154
.clickLaunchIcon('solidityUnitTesting')
151155
.pause(500)
152156
.scrollAndClick('#runTestsTabRunAction')
157+
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
158+
.pause(5000)
153159
.waitForElementPresent('#solidityUnittestsOutput div[class^="testPass"]')
154-
.pause(15000)
155160
.assert.containsText('#solidityUnittestsOutput', 'browser/4_Ballot_test.sol')
156161
.assert.containsText('#solidityUnittestsOutput', '✓ Check winning proposal')
157162
.assert.containsText('#solidityUnittestsOutput', '✓ Check winnin proposal with return value')

0 commit comments

Comments
 (0)