@@ -2,18 +2,31 @@ const linter = require("solhint");
2
2
const fs = require ( "fs" ) ;
3
3
const assert = require ( "assert" ) ;
4
4
5
+ const settings = {
6
+ plugins : [ "euler-swap" ] ,
7
+ rules : {
8
+ "euler-swap/explicit-return-types-safe-check" : "warn" ,
9
+ } ,
10
+ } ;
5
11
describe ( "ExplicitReturnTypesSafeCheck" , ( ) => {
6
12
it ( "should test the unchecked blocks in example contract" , ( ) => {
7
13
const uncheckedContract = fs . readFileSync (
8
14
"test/contracts/UncheckedReturn.sol" ,
9
15
"utf8"
10
16
) ;
11
- const result = linter . processStr ( uncheckedContract , {
12
- plugins : [ "euler-swap" ] ,
13
- rules : {
14
- "euler-swap/explicit-return-types-safe-check" : "warn" ,
15
- } ,
16
- } ) ;
17
+ const result = linter . processStr ( uncheckedContract , settings ) ;
17
18
assert . equal ( result . reports . length , 0 ) ;
18
19
} ) ;
20
+
21
+ it ( "should return an error if no return is detected" , ( ) => {
22
+ const noReturnContract = fs . readFileSync (
23
+ "test/contracts/NoReturn.sol" ,
24
+ "utf8"
25
+ ) ;
26
+ const result = linter . processStr ( noReturnContract , settings ) ;
27
+ assert . equal (
28
+ result . reports [ 0 ] . message ,
29
+ `Return statements must be written and must explicitly return something; consider "return uint256;"?`
30
+ ) ;
31
+ } ) ;
19
32
} ) ;
0 commit comments