StandardToken.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. contract('StandardToken', function(accounts) {
  2. it("should return the correct allowance amount after approval", function(done) {
  3. var token;
  4. return StandardTokenMock.new()
  5. .then(function(_token) {
  6. token = _token;
  7. return token.approve(accounts[1], 100);
  8. })
  9. .then(function() {
  10. return token.allowance(accounts[0], accounts[1]);
  11. })
  12. .then(function(allowance) {
  13. assert.equal(allowance, 100);
  14. })
  15. .then(done);
  16. });
  17. it("should return correct balances after transfer", function(done) {
  18. var token;
  19. return StandardTokenMock.new(accounts[0], 100)
  20. .then(function(_token) {
  21. token = _token;
  22. return token.transfer(accounts[1], 100);
  23. })
  24. .then(function() {
  25. return token.balanceOf(accounts[0]);
  26. })
  27. .then(function(balance) {
  28. assert.equal(balance, 0);
  29. })
  30. .then(function() {
  31. return token.balanceOf(accounts[1]);
  32. })
  33. .then(function(balance) {
  34. assert.equal(balance, 100);
  35. })
  36. .then(done);
  37. });
  38. it("should throw an error when trying to transfer more than balance", function(done) {
  39. var token;
  40. return StandardTokenMock.new(accounts[0], 100)
  41. .then(function(_token) {
  42. token = _token;
  43. return token.transfer(accounts[1], 101);
  44. })
  45. .catch(function(error) {
  46. if (error.message.search('invalid JUMP') == -1) throw error
  47. })
  48. .then(done);
  49. });
  50. it("should return correct balances after transfering from another account", function(done) {
  51. var token;
  52. return StandardTokenMock.new(accounts[0], 100)
  53. .then(function(_token) {
  54. token = _token;
  55. return token.approve(accounts[1], 100);
  56. })
  57. .then(function() {
  58. return token.transferFrom(accounts[0], accounts[2], 100, {from: accounts[1]});
  59. })
  60. .then(function() {
  61. return token.balanceOf(accounts[0]);
  62. })
  63. .then(function(balance) {
  64. assert.equal(balance, 0);
  65. return token.balanceOf(accounts[2]);
  66. })
  67. .then(function(balance) {
  68. assert.equal(balance, 100)
  69. return token.balanceOf(accounts[1]);
  70. })
  71. .then(function(balance) {
  72. assert.equal(balance, 0);
  73. })
  74. .then(done);
  75. });
  76. it("should throw an error when trying to transfer more than allowed", function(done) {
  77. var token;
  78. return StandardTokenMock.new(accounts[0], 100)
  79. .then(function(_token) {
  80. token = _token;
  81. return token.approve(accounts[1], 99);
  82. })
  83. .then(function() {
  84. return token.transferFrom(accounts[0], accounts[2], 100, {from: accounts[1]});
  85. })
  86. .catch(function(error) {
  87. if (error.message.search('invalid JUMP') == -1) throw error
  88. })
  89. .then(done);
  90. });
  91. });