Commit 7aa7a2f403416b5f7c527fd60758317d02fc0644

Authored by Victor Costa
1 parent a8aed5d9

Fix relevant_commenter badge

lib/merit/badge_rules.rb
... ... @@ -22,9 +22,10 @@ module Merit
22 22 :value => lambda { |article| article.author.present? ? article.author.articles.count : 0 }
23 23 },
24 24 :relevant_commenter => {
25   - :action => 'vote_plugin_profile#vote',
  25 + :action => 'vote#create',
26 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 31 assert_equal 'comment_author', person.badges.first.name
32 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 46 should 'add merit points to comment owner when an user like his comment' do
35 47 comment = create(Comment, :source => article, :author_id => person.id)
36 48  
... ...