buidler-log-remover
Version:
Remove Buidler console.log imports and calls from Solidity source files
77 lines (56 loc) • 1.46 kB
JavaScript
const assert = require('assert');
const regexp = require('./regexp.js');
const testString =
`
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import '@openzeppelin/contracts/token/ERC20/ERC20.sol';
import '@nomiclabs/buidler/console.sol';
import'@nomiclabs/buidler/console.sol';
import "@nomiclabs/buidler/console.sol";
import
'@nomiclabs/buidler/console.sol'
;
abstract contract Token is ERC20 {
uint private _n;
function runAction () external {
_n++;
console.log(_n);
console.log(
_n
);
_n--;
console.log(_n, 'n');
console.log(1);
if (_n == 0) { console.log(_n); }
if (_n == 0) console.log(_n);
}
}
`;
const expectedOutput =
`
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import '@openzeppelin/contracts/token/ERC20/ERC20.sol';
abstract contract Token is ERC20 {
uint private _n;
function runAction () external {
_n++;
_n--;
if (_n == 0) { }
if (_n == 0)
}
}
`;
describe('regular expressions', function () {
it('remove console.log imports', function () {
assert(!testString.replace(regexp.imports, '').includes('console.sol'));
});
it('remove console.log calls', function () {
assert(!testString.replace(regexp.calls, '').includes('console.log'));
});
it('leave unrelated code intact', function () {
let output = testString.replace(regexp.imports, '').replace(regexp.calls, '');
assert.equal(output, expectedOutput);
});
});