DelayedClaimble.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. contract('DelayedClaimable', function(accounts) {
  2. var delayedClaimable;
  3. beforeEach(function() {
  4. return DelayedClaimable.new().then(function(deployed) {
  5. delayedClaimable = deployed;
  6. });
  7. });
  8. it("changes pendingOwner after transfer succesful", function(done) {
  9. return delayedClaimable.transfer(accounts[2])
  10. .then(function(){
  11. return delayedClaimable.setClaimBefore(1000)
  12. })
  13. .then(function(){
  14. return delayedClaimable.claimBeforeBlock();
  15. })
  16. .then(function(claimBeforeBlock) {
  17. assert.isTrue(claimBeforeBlock == 1000);
  18. return delayedClaimable.pendingOwner();
  19. })
  20. .then(function(pendingOwner) {
  21. assert.isTrue(pendingOwner === accounts[2]);
  22. return delayedClaimable.claimOwnership({from: accounts[2]});
  23. })
  24. .then(function() {
  25. return delayedClaimable.owner();
  26. })
  27. .then(function(owner) {
  28. assert.isTrue(owner === accounts[2]);
  29. })
  30. .then(done)
  31. });
  32. it("changes pendingOwner after transfer fails", function(done) {
  33. return delayedClaimable.transfer(accounts[1])
  34. .then(function(){
  35. return delayedClaimable.setClaimBefore(1)
  36. })
  37. .then(function(){
  38. return delayedClaimable.claimBeforeBlock();
  39. })
  40. .then(function(claimBeforeBlock) {
  41. assert.isTrue(claimBeforeBlock == 1);
  42. return delayedClaimable.pendingOwner();
  43. })
  44. .then(function(pendingOwner) {
  45. assert.isTrue(pendingOwner === accounts[1]);
  46. return delayedClaimable.claimOwnership({from: accounts[1]});
  47. })
  48. .catch(function(error) {
  49. if (error.message.search('invalid JUMP') == -1) throw error
  50. })
  51. .then(function() {
  52. return delayedClaimable.owner();
  53. })
  54. .then(function(owner) {
  55. assert.isTrue(owner != accounts[1]);
  56. })
  57. .then(done)
  58. });
  59. });