Files
openzeppelin-contracts/test/Ownable.js

46 lines
1.2 KiB
JavaScript

'use strict'
const assertJump = require('./helpers/assertJump')
var Ownable = artifacts.require('../contracts/ownership/Ownable.sol')
contract('Ownable', function (accounts) {
let ownable
beforeEach(async function () {
ownable = await Ownable.new()
})
it('should have an owner', async function () {
let owner = await ownable.owner()
assert.isTrue(owner !== 0)
})
it('changes owner after transfer', async function () {
let other = accounts[1]
await ownable.transferOwnership(other)
let owner = await ownable.owner()
assert.isTrue(owner === other)
})
it('should prevent non-owners from transfering', async function () {
const other = accounts[2]
const owner = await ownable.owner.call()
assert.isTrue(owner !== other)
try {
await ownable.transferOwnership(other, {from: other})
} catch (error) {
assertJump(error)
}
})
it('should guard ownership against stuck state setting owner as 0x0 address', async function () {
let originalOwner = await ownable.owner()
try {
await ownable.transferOwnership(null, {from: originalOwner})
} catch (error) {
assertJump(error)
}
})
})