Refactoring Superuser contract to allow Owners to transfer ownership … (#978)
* Refactoring Superuser contract to allow Owners to transfer ownership when they are not superusers #50 * Refactoring tests to create a contract instance for each of them #50
This commit is contained in:
committed by
Francisco Giordano
parent
5db0d7d1a0
commit
7fb84b42d5
@ -15,7 +15,7 @@ contract('Superuser', function (accounts) {
|
||||
anyone,
|
||||
] = accounts;
|
||||
|
||||
before(async function () {
|
||||
beforeEach(async function () {
|
||||
this.superuser = await Superuser.new();
|
||||
});
|
||||
|
||||
@ -31,11 +31,13 @@ contract('Superuser', function (accounts) {
|
||||
const ownerIsSuperuser = await this.superuser.isSuperuser(firstOwner);
|
||||
ownerIsSuperuser.should.be.equal(false);
|
||||
|
||||
const address1IsSuperuser = await this.superuser.isSuperuser(newSuperuser);
|
||||
address1IsSuperuser.should.be.equal(true);
|
||||
const newSuperuserIsSuperuser = await this.superuser.isSuperuser(newSuperuser);
|
||||
newSuperuserIsSuperuser.should.be.equal(true);
|
||||
});
|
||||
|
||||
it('should change owner after transferring', async function () {
|
||||
it('should change owner after the superuser transfers the ownership', async function () {
|
||||
await this.superuser.transferSuperuser(newSuperuser, { from: firstOwner });
|
||||
|
||||
await expectEvent.inTransaction(
|
||||
this.superuser.transferOwnership(newOwner, { from: newSuperuser }),
|
||||
'OwnershipTransferred'
|
||||
@ -44,6 +46,16 @@ contract('Superuser', function (accounts) {
|
||||
const currentOwner = await this.superuser.owner();
|
||||
currentOwner.should.be.equal(newOwner);
|
||||
});
|
||||
|
||||
it('should change owner after the owner transfers the ownership', async function () {
|
||||
await expectEvent.inTransaction(
|
||||
this.superuser.transferOwnership(newOwner, { from: firstOwner }),
|
||||
'OwnershipTransferred'
|
||||
);
|
||||
|
||||
const currentOwner = await this.superuser.owner();
|
||||
currentOwner.should.be.equal(newOwner);
|
||||
});
|
||||
});
|
||||
|
||||
context('in adversarial conditions', () => {
|
||||
@ -53,7 +65,7 @@ contract('Superuser', function (accounts) {
|
||||
);
|
||||
});
|
||||
|
||||
it('should prevent non-superusers from setting a new owner', async function () {
|
||||
it('should prevent users that are not superuser nor owner from setting a new owner', async function () {
|
||||
await expectThrow(
|
||||
this.superuser.transferOwnership(newOwner, { from: anyone })
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user