Ownable.test.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const assertRevert = require('./helpers/assertRevert');
  2. var Ownable = artifacts.require('../contracts/ownership/Ownable.sol');
  3. contract('Ownable', function (accounts) {
  4. let ownable;
  5. beforeEach(async function () {
  6. ownable = await Ownable.new();
  7. });
  8. it('should have an owner', async function () {
  9. let owner = await ownable.owner();
  10. assert.isTrue(owner !== 0);
  11. });
  12. it('changes owner after transfer', async function () {
  13. let other = accounts[1];
  14. await ownable.transferOwnership(other);
  15. let owner = await ownable.owner();
  16. assert.isTrue(owner === other);
  17. });
  18. it('should prevent non-owners from transfering', async function () {
  19. const other = accounts[2];
  20. const owner = await ownable.owner.call();
  21. assert.isTrue(owner !== other);
  22. try {
  23. await ownable.transferOwnership(other, { from: other });
  24. assert.fail('should have thrown before');
  25. } catch (error) {
  26. assertRevert(error);
  27. }
  28. });
  29. it('should guard ownership against stuck state', async function () {
  30. let originalOwner = await ownable.owner();
  31. try {
  32. await ownable.transferOwnership(null, { from: originalOwner });
  33. assert.fail();
  34. } catch (error) {
  35. assertRevert(error);
  36. }
  37. });
  38. });