StandardToken.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. const assertJump = require('./helpers/assertJump');
  2. contract('StandardToken', function(accounts) {
  3. it("should return the correct totalSupply after construction", async function() {
  4. let token = await StandardTokenMock.new(accounts[0], 100);
  5. let totalSupply = await token.totalSupply();
  6. assert.equal(totalSupply, 100);
  7. })
  8. it("should return the correct allowance amount after approval", async function() {
  9. let token = await StandardTokenMock.new();
  10. let approve = await token.approve(accounts[1], 100);
  11. let allowance = await token.allowance(accounts[0], accounts[1]);
  12. assert.equal(allowance, 100);
  13. });
  14. it("should return correct balances after transfer", async function() {
  15. let token = await StandardTokenMock.new(accounts[0], 100);
  16. let transfer = await token.transfer(accounts[1], 100);
  17. let balance0 = await token.balanceOf(accounts[0]);
  18. assert.equal(balance0, 0);
  19. let balance1 = await token.balanceOf(accounts[1]);
  20. assert.equal(balance1, 100);
  21. });
  22. it("should throw an error when trying to transfer more than balance", async function() {
  23. let token = await StandardTokenMock.new(accounts[0], 100);
  24. try {
  25. let transfer = await token.transfer(accounts[1], 101);
  26. } catch(error) {
  27. assertJump(error);
  28. }
  29. });
  30. it("should return correct balances after transfering from another account", async function() {
  31. let token = await StandardTokenMock.new(accounts[0], 100);
  32. let approve = await token.approve(accounts[1], 100);
  33. let transferFrom = await token.transferFrom(accounts[0], accounts[2], 100, {from: accounts[1]});
  34. let balance0 = await token.balanceOf(accounts[0]);
  35. assert.equal(balance0, 0);
  36. let balance1 = await token.balanceOf(accounts[2]);
  37. assert.equal(balance1, 100);
  38. let balance2 = await token.balanceOf(accounts[1]);
  39. assert.equal(balance2, 0);
  40. });
  41. it("should throw an error when trying to transfer more than allowed", async function() {
  42. let token = await StandardTokenMock.new();
  43. let approve = await token.approve(accounts[1], 99);
  44. try {
  45. let transfer = await token.transferFrom(accounts[0], accounts[2], 100, {from: accounts[1]});
  46. } catch (error) {
  47. assertJump(error);
  48. }
  49. });
  50. });