UNPKG

gittoken-contracts

Version:

GitToken Solidity Smart Contracts

550 lines (540 loc) 14.4 kB
var RewardPoints = artifacts.require("./RewardPoints.sol"); var Promise = require("bluebird") const { decimals } = require('../gittoken.config') var toPowerOf = require('../utils/toPowerOf') var Contract; contract('RewardPoints', function(accounts) { describe("RewardPoints::getRewardDetails", function() { it(`Should check the reward values for contributions events`, function() { initContract().then(function(contract) { Contract = contract return rewardDetails }).map((details) => { const { event, subevent } = details return Promise.join( details, Contract.getRewardDetails.call(event, subevent) ) }).map((data) => { const { rewardValue, reserveValue } = data[0] const values = data[1] assert.equal(values[0].toNumber(), rewardValue, `Expected reward value to equal ${rewardValue}`) assert.equal(values[1].toNumber(), reserveValue, `Expected reserve value to equal ${reserveValue}`) }).catch(function(error) { assert.equal(error, null, error.message) }) }) }) }); const rewardDetails = [{ event: 'commit_comment', subevent: 'created', rewardValue: toPowerOf(250, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'create', subevent: 'repository', rewardValue: toPowerOf(2500, decimals), reserveValue: toPowerOf(500, decimals) },{ event: 'create', subevent: 'branch', rewardValue: toPowerOf(150, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'create', subevent: 'tag', rewardValue: toPowerOf(150, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'delete', subevent: 'branch', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'delete', subevent: 'tag', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'deployment', subevent: '', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'deployment_status', subevent: 'success', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'deployment_status', subevent: 'pending', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'deployment_status', subevent: 'failure', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'deployment_status', subevent: 'error', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'fork', subevent: '', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(1000, decimals) },{ event: 'gollum', subevent: 'created', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'gollum', subevent: 'edited', rewardValue: toPowerOf(50, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'installation', subevent: 'created', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'installation', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'installation_repositories', subevent: 'added', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'installation_repositories', subevent: 'removed', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues_comment', subevent: 'created', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues_comment', subevent: 'edited', rewardValue: toPowerOf(250, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues_comment', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'assigned', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'unassigned', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'labeled', rewardValue: toPowerOf(50, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'unlabeled', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'opened', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'edited', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'milestoned', rewardValue: toPowerOf(50, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'demilestoned', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'closed', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'issues', subevent: 'reopened', rewardValue: toPowerOf(150, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'label', subevent: 'created', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'label', subevent: 'edited', rewardValue: toPowerOf(50, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'label', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'marketplace_purchase', subevent: 'purchased', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'marketplace_purchase', subevent: 'cancelled', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'marketplace_purchase', subevent: 'changed', rewardValue: toPowerOf(250, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'member', subevent: 'added', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'member', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'member', subevent: 'edited', rewardValue: toPowerOf(250, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'membership', subevent: 'added', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'membership', subevent: 'removed', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'milestone', subevent: 'created', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'milestone', subevent: 'closed', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(15000, decimals) },{ event: 'milestone', subevent: 'opened', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'milestone', subevent: 'edited', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'milestone', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'organization', subevent: 'member_added', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(15000, decimals) },{ event: 'organization', subevent: 'member_removed', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'organization', subevent: 'member_invited', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'org_block', subevent: 'blocked', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'org_block', subevent: 'unblocked', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'page_build', subevent: 'built', rewardValue: toPowerOf(2500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project_card', subevent: 'created', rewardValue: toPowerOf(50, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project_card', subevent: 'edited', rewardValue: toPowerOf(25, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project_card', subevent: 'converted', rewardValue: toPowerOf(25, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project_card', subevent: 'moved', rewardValue: toPowerOf(15, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project_card', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project_column', subevent: 'created', rewardValue: toPowerOf(50, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project_column', subevent: 'edited', rewardValue: toPowerOf(25, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project_column', subevent: 'moved', rewardValue: toPowerOf(15, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project_column', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project', subevent: 'created', rewardValue: toPowerOf(2500, decimals), reserveValue: toPowerOf(2500, decimals) },{ event: 'project', subevent: 'edited', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'project', subevent: 'closed', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(500, decimals) },{ event: 'project', subevent: 'reopened', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request_review_comment', subevent: 'created', rewardValue: toPowerOf(250, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request_review_comment', subevent: 'edited', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request_review_comment', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request_review', subevent: 'submitted', rewardValue: toPowerOf(250, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request_review', subevent: 'edited', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request_review', subevent: 'dismissed', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'assigned', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'unassigned', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'review_requested', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'review_request_removed', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'labeled', rewardValue: toPowerOf(50, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'unlabeled', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'opened', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'edited', rewardValue: toPowerOf(50, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'closed', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'pull_request', subevent: 'reopened', rewardValue: toPowerOf(15, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'ping', subevent: '', rewardValue: toPowerOf(2500, decimals), reserveValue: toPowerOf(5000, decimals) },{ event: 'push', subevent: '', rewardValue: toPowerOf(250, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'release', subevent: 'published', rewardValue: toPowerOf(5000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'repository', subevent: 'created', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'repository', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'repository', subevent: 'publicized', rewardValue: toPowerOf(2500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'repository', subevent: 'privatized', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'status', subevent: 'pending', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'status', subevent: 'success', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'status', subevent: 'failure', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'status', subevent: 'error', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'team', subevent: 'created', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'team', subevent: 'deleted', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'team', subevent: 'edited', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'team', subevent: 'added_to_repository', rewardValue: toPowerOf(100, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'team', subevent: 'removed_from_repository', rewardValue: toPowerOf(0, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'team_add', subevent: '', rewardValue: toPowerOf(1000, decimals), reserveValue: toPowerOf(0, decimals) },{ event: 'watch', subevent: 'started', rewardValue: toPowerOf(500, decimals), reserveValue: toPowerOf(500, decimals) }] function initContract() { return new Promise((resolve, reject) => { RewardPoints.new( decimals ).then(function(contract) { resolve(contract) }).catch(function(error) { reject(error) }) }) }