12345678910111213141516171819202122232425262728293031323334353637 |
- import expectThrow from '../../helpers/expectThrow';
- import shouldBehaveLikeMintableToken from './MintableToken.behaviour';
- const RBACMintableToken = artifacts.require('RBACMintableToken');
- const ROLE_MINTER = 'minter';
- contract('RBACMintableToken', function ([owner, anotherAccount, minter]) {
- beforeEach(async function () {
- this.token = await RBACMintableToken.new({ from: owner });
- await this.token.addMinter(minter, { from: owner });
- });
- describe('handle roles', function () {
- it('owner can add and remove a minter role', async function () {
- await this.token.addMinter(anotherAccount, { from: owner });
- let hasRole = await this.token.hasRole(anotherAccount, ROLE_MINTER);
- assert.equal(hasRole, true);
- await this.token.removeMinter(anotherAccount, { from: owner });
- hasRole = await this.token.hasRole(anotherAccount, ROLE_MINTER);
- assert.equal(hasRole, false);
- });
- it('another account can\'t add or remove a minter role', async function () {
- await expectThrow(
- this.token.addMinter(anotherAccount, { from: anotherAccount })
- );
- await this.token.addMinter(anotherAccount, { from: owner });
- await expectThrow(
- this.token.removeMinter(anotherAccount, { from: anotherAccount })
- );
- });
- });
- shouldBehaveLikeMintableToken([owner, anotherAccount, minter]);
- });
|