Commit 7aa7a2f403416b5f7c527fd60758317d02fc0644
1 parent
a8aed5d9
Exists in
master
and in
1 other branch
Fix relevant_commenter badge
Showing
2 changed files
with
15 additions
and
2 deletions
Show diff stats
lib/merit/badge_rules.rb
@@ -22,9 +22,10 @@ module Merit | @@ -22,9 +22,10 @@ module Merit | ||
22 | :value => lambda { |article| article.author.present? ? article.author.articles.count : 0 } | 22 | :value => lambda { |article| article.author.present? ? article.author.articles.count : 0 } |
23 | }, | 23 | }, |
24 | :relevant_commenter => { | 24 | :relevant_commenter => { |
25 | - :action => 'vote_plugin_profile#vote', | 25 | + :action => 'vote#create', |
26 | :default_threshold => 5, | 26 | :default_threshold => 5, |
27 | - :value => lambda { |voteable| voteable.kind_of?(Comment) ? voteable.votes.count : 0 } | 27 | + :to => lambda {|vote| vote.voteable.author}, |
28 | + :value => lambda { |vote| vote.voteable.kind_of?(Comment) ? Vote.for_voteable(vote.voteable).where('vote > 0').count : 0 } | ||
28 | } | 29 | } |
29 | } | 30 | } |
30 | 31 |
test/unit/comment_test.rb
@@ -31,6 +31,18 @@ class CommentTest < ActiveSupport::TestCase | @@ -31,6 +31,18 @@ class CommentTest < ActiveSupport::TestCase | ||
31 | assert_equal 'comment_author', person.badges.first.name | 31 | assert_equal 'comment_author', person.badges.first.name |
32 | end | 32 | end |
33 | 33 | ||
34 | + should 'add badge to author when users vote in his comment' do | ||
35 | + GamificationPlugin::Badge.create!(:owner => environment, :name => 'relevant_commenter') | ||
36 | + GamificationPlugin.gamification_set_rules(environment) | ||
37 | + | ||
38 | + comment = create(Comment, :source => article, :author_id => person.id) | ||
39 | + 4.times { Vote.create!(:voter => fast_create(Person), :voteable => comment, :vote => 1) } | ||
40 | + Vote.create!(:voter => fast_create(Person), :voteable => comment, :vote => -1) | ||
41 | + assert_equal [], person.badges | ||
42 | + Vote.create!(:voter => fast_create(Person), :voteable => comment, :vote => 1) | ||
43 | + assert_equal 'relevant_commenter', person.reload.badges.first.name | ||
44 | + end | ||
45 | + | ||
34 | should 'add merit points to comment owner when an user like his comment' do | 46 | should 'add merit points to comment owner when an user like his comment' do |
35 | comment = create(Comment, :source => article, :author_id => person.id) | 47 | comment = create(Comment, :source => article, :author_id => person.id) |
36 | 48 |