gittoken-contracts
Version:
GitToken Solidity Smart Contracts
59 lines (49 loc) • 1.98 kB
JavaScript
var GitToken = artifacts.require("./GitToken.sol");
var Promise = require("bluebird")
const { contributorAddress, username, name, organization, symbol, decimals } = require('../gittoken.config')
function initContract() {
return new Promise((resolve, reject) => {
GitToken.new(
contributorAddress,
username,
name,
organization,
symbol,
decimals
).then(function(gittoken) {
resolve(gittoken)
}).catch(function(error) {
reject(error)
})
})
}
function toBigNumber(value, decimals) {
return value * Math.pow(10, decimals)
}
contract('GitToken', function(accounts) {
describe('GitToken::transfer', function() {
it("Should reward a contributor and allow that contributor to transfer one unit of the token", function() {
var gittoken;
return initContract().then((contract) => {
gittoken = contract
return gittoken.verifyContributor(accounts[0], username)
}).then(function(event) {
const { logs } = event
assert.equal(logs.length, 1, "Expect a logged event")
assert.equal(logs[0]['event'], "ContributorVerified", "Expected a `ContributorVerified` event")
return gittoken.rewardContributor(username, "organization_member_added", toBigNumber(2500, decimals), toBigNumber(2500, decimals), "00000000-0000-0000-0000-000000000000")
}).then(function(event){
const { logs } = event
assert.equal(logs.length, 1, "Expect a logged event")
assert.equal(logs[0]['event'], "Contribution", "Expected a `Contribution` event")
return gittoken.transfer("0x8CB2CeBB0070b231d4BA4D3b747acAebDFbbD142", 1e8)
}).then(function(event) {
const { logs } = event
assert.equal(logs.length, 1, "Expect a logged event")
assert.equal(logs[0]['event'], "Transfer", "Expected a `Transfer` event")
}).catch(function(error) {
assert.equal(error, null, error.message)
})
})
})
})