Ownable.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. contract('Ownable', function(accounts) {
  2. let ownable;
  3. beforeEach(async function(done) {
  4. ownable = await Ownable.new();
  5. done();
  6. });
  7. it("should have an owner", async function(done) {
  8. let owner = await ownable.owner();
  9. assert.isTrue(owner != 0);
  10. done();
  11. });
  12. it("changes owner after transfer", async function(done) {
  13. let other = accounts[1];
  14. let transfer = await ownable.transfer(other);
  15. let owner = await ownable.owner();
  16. assert.isTrue(owner === other);
  17. done();
  18. });
  19. it("should prevent non-owners from transfering", async function(done) {
  20. let other = accounts[2];
  21. let transfer = await ownable.transfer(other, {from: accounts[2]});
  22. let owner = await ownable.owner();
  23. assert.isFalse(owner === other);
  24. done();
  25. });
  26. it("should guard ownership against stuck state", async function(done) {
  27. let ownable = Ownable.deployed();
  28. let originalOwner = await ownable.owner();
  29. let transfer = await ownable.transfer(null, {from: originalOwner});
  30. let newOwner = await ownable.owner();
  31. assert.equal(originalOwner, newOwner);
  32. done();
  33. });
  34. });