Veto contributions #113

Merged
raucao merged 5 commits from feature/98-veto_unconfirmed_contributions into master 2019-05-01 18:43:29 +00:00
4 changed files with 77 additions and 0 deletions
Showing only changes of commit f25c74c7e9 - Show all commits
+20
View File
@@ -0,0 +1,20 @@
import Helper from '@ember/component/helper';
import { inject as service } from '@ember/service';
import { alias } from '@ember/object/computed';
export default Helper.extend({
kredits: service(),
currentBlock: alias('kredits.currentBlock'),
compute([contribution]) {
bumi commented 2019-05-01 18:25:07 +00:00 (Migrated from github.com)
Review

can this also be something on the model? (#rubythinking :)

can this also be something on the model? (#rubythinking :)
raucao commented 2019-05-01 18:36:21 +00:00 (Migrated from github.com)
Review

No, because you cannot inject services into a model.

No, because you cannot inject services into a model.
if (contribution.vetoed) {
return 'vetoed';
} else if (contribution.confirmedAt > this.currentBlock) {
return 'unconfirmed';
} else {
return 'confirmed'
}
}
});
+15
View File
@@ -0,0 +1,15 @@
import Helper from '@ember/component/helper';
import { inject as service } from '@ember/service';
import { alias } from '@ember/object/computed';
export default Helper.extend({
kredits: service(),
currentBlock: alias('kredits.currentBlock'),
compute([contribution]) {
return !contribution.vetoed &&
(contribution.confirmedAt <= this.currentBlock);
}
});
+21
View File
@@ -0,0 +1,21 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Helper | contribution-status', function (hooks) {
setupTest(hooks);
test('returns the appropriate status', function (assert) {
const contributionStatus = this.owner.factoryFor('helper:contribution-status').create();
const kredits = this.owner.lookup('service:kredits');
kredits.set('currentBlock', 23000);
const contributionUnconfirmed = { confirmedAt: 23001, vetoed: false };
const contributionConfirmed = { confirmedAt: 21000, vetoed: false };
const contributionVetoed = { confirmedAt: 23001, vetoed: true };
assert.eq(contributionStatus.compute([contributionUnconfirmed]), 'unconfirmed');
assert.eq(contributionStatus.compute([contributionConfirmed]), 'confirmed');
assert.eq(contributionStatus.compute([contributionVetoed]), 'vetoed');
});
});
@@ -0,0 +1,21 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Helper | contribution-status', function (hooks) {
setupTest(hooks);
test('returns the appropriate status', function (assert) {
const contributionStatus = this.owner.factoryFor('helper:contribution-status').create();
const kredits = this.owner.lookup('service:kredits');
kredits.set('currentBlock', 23000);
const contributionUnconfirmed = { confirmedAt: 23001, vetoed: false };
const contributionConfirmed = { confirmedAt: 21000, vetoed: false };
const contributionVetoed = { confirmedAt: 23001, vetoed: true };
assert.notOk(contributionStatus.compute([contributionUnconfirmed]), 'unconfirmed');
assert.notOk(contributionStatus.compute([contributionVetoed]), 'vetoed');
assert.ok(contributionStatus.compute([contributionConfirmed]), 'confirmed');
});
});