Code coverage for Solidity smart-contracts
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
solidity-coverage/test/units/api.js

70 lines
1.7 KiB

const assert = require('assert');
const util = require('./../util/util.js');
const API = require('./../../api.js');
const utils = require('./../../utils.js');
describe('api', () => {
let opts;
beforeEach(() => opts = {silent: true})
it('getInstrumentationData', function(){
const api = new API(opts);
const canonicalPath = 'statements/single.sol'
const source = util.getCode(canonicalPath);
api.instrument([{
source: source,
canonicalPath: canonicalPath
}]);
const data = api.getInstrumentationData();
const hash = Object.keys(data)[0];
assert(data[hash].hits === 0);
});
it('setInstrumentationData', function(){
let api = new API(opts);
const canonicalPath = 'statements/single.sol'
const source = util.getCode(canonicalPath);
api.instrument([{
source: source,
canonicalPath: canonicalPath
}]);
const cloneA = api.getInstrumentationData();
const hash = Object.keys(cloneA)[0];
// Verify cloning
cloneA[hash].hits = 5;
const cloneB = api.getInstrumentationData();
assert(cloneB[hash].hits === 0);
// Verify setting
api = new API(opts);
api.instrument([{
source: source,
canonicalPath: canonicalPath
}]);
api.setInstrumentationData(cloneA);
const cloneC = api.getInstrumentationData();
assert(cloneC[hash].hits === 5);
});
it('utils', async function(){
assert(utils.assembleFiles !== undefined)
assert(utils.checkContext !== undefined)
assert(utils.finish !== undefined)
assert(utils.getTempLocations !== undefined)
assert(utils.setupTempFolders !== undefined)
assert(utils.loadSource !== undefined)
assert(utils.loadSolcoverJS !== undefined)
assert(utils.save !== undefined)
});
})