|
@@ -1,6 +1,7 @@
|
|
|
'use strict';
|
|
|
|
|
|
const assertJump = require('./helpers/assertJump');
|
|
|
+const expectThrow = require('./helpers/expectThrow');
|
|
|
var StandardTokenMock = artifacts.require('./helpers/StandardTokenMock.sol');
|
|
|
|
|
|
contract('StandardToken', function(accounts) {
|
|
@@ -70,6 +71,17 @@ contract('StandardToken', function(accounts) {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+ it('should throw an error when trying to transferFrom more than _from has', async function() {
|
|
|
+ let balance0 = await token.balanceOf(accounts[0]);
|
|
|
+ await token.approve(accounts[1], 99);
|
|
|
+ try {
|
|
|
+ await token.transferFrom(accounts[0], accounts[2], balance0+1, {from: accounts[1]});
|
|
|
+ assert.fail('should have thrown before');
|
|
|
+ } catch (error) {
|
|
|
+ assertJump(error);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
describe('validating allowance updates to spender', function() {
|
|
|
let preApproved;
|
|
|
|
|
@@ -88,6 +100,13 @@ contract('StandardToken', function(accounts) {
|
|
|
})
|
|
|
});
|
|
|
|
|
|
+ it('should increase by 50 then set to 0 when decreasing by more than 50', async function() {
|
|
|
+ await token.approve(accounts[1], 50);
|
|
|
+ await token.decreaseApproval(accounts[1], 60);
|
|
|
+ let postDecrease = await token.allowance(accounts[0], accounts[1]);
|
|
|
+ postDecrease.should.be.bignumber.equal(0);
|
|
|
+});
|
|
|
+
|
|
|
it('should throw an error when trying to transfer to 0x0', async function() {
|
|
|
let token = await StandardTokenMock.new(accounts[0], 100);
|
|
|
try {
|