const { expectThrow } = require('../helpers/expectThrow'); const Ownable = artifacts.require('Ownable'); const HasNoContracts = artifacts.require('HasNoContracts'); contract('HasNoContracts', function ([_, owner, anyone]) { let hasNoContracts = null; let ownable = null; beforeEach(async function () { // Create contract and token hasNoContracts = await HasNoContracts.new({ from: owner }); ownable = await Ownable.new({ from: owner }); // Force ownership into contract await ownable.transferOwnership(hasNoContracts.address, { from: owner }); }); it('should allow owner to reclaim contracts', async function () { await hasNoContracts.reclaimContract(ownable.address, { from: owner }); (await ownable.owner()).should.equal(owner); }); it('should allow only owner to reclaim contracts', async function () { await expectThrow( hasNoContracts.reclaimContract(ownable.address, { from: anyone }) ); }); });