У меня есть контракт солидности в среде Truffle, и я не могу понять, почему мой тест JS не работает.
Я пытаюсь протестировать функцию 'setPlayers', контракт работает и тестызапущены, но я не могу понять, как вызвать функцию в тесте:
pragma solidity ^0.4.23;
contract Swindle {
string public eventName;
uint public entryFee;
string[] public players;
string public winner;
uint public winnings;
function comp(string _eventName, uint _entryFee) public {
eventName = _eventName;
entryFee = _entryFee;
}
function addPlayers(string _player) public {
players.push(_player);
}
function winner(string _player) public returns (string, uint) {
winner = _player;
winnings = (players.length * entryFee);
return (winner, winnings);
}
}
Тестовый файл:
var Swindle = artifacts.require("Swindle");
contract('Swindle', function(accounts) {
it('sets player to stuart', function(){
return Swindle.deployed().then(function(instance) {
swindle = instance;
return swindle.addPlayers.call("stuart");
}).then(function(swindle) {
assert.equal(swindle.players[0], "stuart", "sets the total supply");
})
})
})
Ошибка:
0 passing (302ms)
1 failing
1) Contract: Swindle
sets player to stuart:
TypeError: Cannot read property '0' of undefined
at test/test-swindle.js:10:32
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:118:7)