Browse Source

Improve role behavior tests (#1300)

* The public role behavior now also tests the modifer.

* Fixed linter error.
Nicolás Venturo 7 years ago
parent
commit
254210f699
1 changed files with 19 additions and 0 deletions
  1. 19 0
      test/access/roles/PublicRole.behavior.js

+ 19 - 0
test/access/roles/PublicRole.behavior.js

@@ -1,3 +1,4 @@
+const { assertRevert } = require('../../helpers/assertRevert');
 const expectEvent = require('../../helpers/expectEvent');
 
 require('chai')
@@ -18,6 +19,24 @@ function shouldBehaveLikePublicRole (authorized, otherAuthorized, [anyone], role
       (await this.contract[`is${rolename}`](anyone)).should.equal(false);
     });
 
+    describe('access control', function () {
+      context('from authorized account', function () {
+        const from = authorized;
+
+        it('allows access', async function () {
+          await this.contract[`only${rolename}Mock`]({ from });
+        });
+      });
+
+      context('from unauthorized account', function () {
+        const from = anyone;
+
+        it('reverts', async function () {
+          await assertRevert(this.contract[`only${rolename}Mock`]({ from }));
+        });
+      });
+    });
+
     describe('add', function () {
       it('adds role to a new account', async function () {
         await this.contract[`add${rolename}`](anyone, { from: authorized });