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:
Patricio Mosse
2018-06-05 17:28:42 -03:00
committed by Francisco Giordano
parent 5db0d7d1a0
commit 7fb84b42d5
3 changed files with 44 additions and 24 deletions

View File

@ -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 })
);