Commit 53767f1dd0186dbb19e33854173ba68778b22aa7
1 parent
c9306125
Exists in
master
and in
1 other branch
Fix tests
Showing
5 changed files
with
26 additions
and
25 deletions
Show diff stats
test/functional/gamification_plugin_points_controller_test.rb
@@ -23,6 +23,7 @@ class GamificationPluginPointsControllerTest < ActionController::TestCase | @@ -23,6 +23,7 @@ class GamificationPluginPointsControllerTest < ActionController::TestCase | ||
23 | end | 23 | end |
24 | 24 | ||
25 | should "should create gamification_plugin_point_categorizations for general rules" do | 25 | should "should create gamification_plugin_point_categorizations for general rules" do |
26 | + GamificationPlugin::PointsCategorization.destroy_all | ||
26 | count = GamificationPlugin::PointsType.count | 27 | count = GamificationPlugin::PointsType.count |
27 | assert_difference('GamificationPlugin::PointsCategorization.count', count) do | 28 | assert_difference('GamificationPlugin::PointsCategorization.count', count) do |
28 | post :create, identifier: '' | 29 | post :create, identifier: '' |
test/test_helper.rb
@@ -4,8 +4,9 @@ def create_point_rule_definition(rule_name, profile = nil, config = {}) | @@ -4,8 +4,9 @@ def create_point_rule_definition(rule_name, profile = nil, config = {}) | ||
4 | rule = load_point_rule(rule_name, config) | 4 | rule = load_point_rule(rule_name, config) |
5 | point_type = GamificationPlugin::PointsType.find_by_name rule_name | 5 | point_type = GamificationPlugin::PointsType.find_by_name rule_name |
6 | point_type = GamificationPlugin::PointsType.create name: rule_name, description: rule['description'] if point_type.nil? | 6 | point_type = GamificationPlugin::PointsType.create name: rule_name, description: rule['description'] if point_type.nil? |
7 | - GamificationPlugin::PointsCategorization.create point_type_id: point_type.id, profile: profile, weight: rule[:default_weight] | 7 | + categorization = GamificationPlugin::PointsCategorization.create point_type_id: point_type.id, profile: profile, weight: rule[:default_weight] |
8 | GamificationPlugin.gamification_set_rules(@environment) | 8 | GamificationPlugin.gamification_set_rules(@environment) |
9 | + categorization | ||
9 | end | 10 | end |
10 | 11 | ||
11 | def create_all_point_rules | 12 | def create_all_point_rules |
test/unit/article_follower_test.rb
@@ -58,13 +58,14 @@ class ArticleFollowerTest < ActiveSupport::TestCase | @@ -58,13 +58,14 @@ class ArticleFollowerTest < ActiveSupport::TestCase | ||
58 | should 'subtract merit points to article author when a user unfollow an article' do | 58 | should 'subtract merit points to article author when a user unfollow an article' do |
59 | create_point_rule_definition('follower') | 59 | create_point_rule_definition('follower') |
60 | article = create(TextArticle, :profile_id => community.id, :author => person) | 60 | article = create(TextArticle, :profile_id => community.id, :author => person) |
61 | - score_points = person.score_points.count | ||
62 | - points = person.points | ||
63 | - article.person_followers << person | ||
64 | - assert_equal score_points + 1, person.score_points.count | ||
65 | - ArticleFollower.last.destroy | ||
66 | - assert_equal score_points + 2, person.score_points.count | ||
67 | - assert_equal points, person.points | 61 | + assert_no_difference 'person.points' do |
62 | + assert_difference 'person.score_points.count' do | ||
63 | + article.person_followers << fast_create(Person) | ||
64 | + end | ||
65 | + assert_difference 'person.score_points.count' do | ||
66 | + ArticleFollower.last.destroy | ||
67 | + end | ||
68 | + end | ||
68 | end | 69 | end |
69 | 70 | ||
70 | should 'subtract merit points to article when a user unfollow an article' do | 71 | should 'subtract merit points to article when a user unfollow an article' do |
test/unit/article_test.rb
@@ -121,19 +121,18 @@ class ArticleTest < ActiveSupport::TestCase | @@ -121,19 +121,18 @@ class ArticleTest < ActiveSupport::TestCase | ||
121 | # community related tests | 121 | # community related tests |
122 | should 'add merit community points to author when create a new article on community' do | 122 | should 'add merit community points to author when create a new article on community' do |
123 | community = fast_create(Community) | 123 | community = fast_create(Community) |
124 | - create_point_rule_definition('article_author', community) | 124 | + rule = create_point_rule_definition('article_author', community) |
125 | create(TextArticle, profile_id: community.id, author_id: person.id) | 125 | create(TextArticle, profile_id: community.id, author_id: person.id) |
126 | - assert_equal 1, person.score_points.count | 126 | + assert_equal rule.weight, person.points_by_profile(community.identifier) |
127 | assert person.score_points.first.action.present? | 127 | assert person.score_points.first.action.present? |
128 | end | 128 | end |
129 | 129 | ||
130 | should 'subtract merit points to author when destroy an article on community' do | 130 | should 'subtract merit points to author when destroy an article on community' do |
131 | community = fast_create(Community) | 131 | community = fast_create(Community) |
132 | - create_point_rule_definition('article_author', community) | 132 | + rule = create_point_rule_definition('article_author', community) |
133 | article = create(TextArticle, profile_id: community.id, author_id: person.id) | 133 | article = create(TextArticle, profile_id: community.id, author_id: person.id) |
134 | - assert_equal 1, person.score_points.count | 134 | + assert_equal rule.weight, person.points_by_profile(community.identifier) |
135 | article.destroy | 135 | article.destroy |
136 | - assert_equal 2, person.score_points.count | ||
137 | assert_equal 0, person.points | 136 | assert_equal 0, person.points |
138 | end | 137 | end |
139 | 138 | ||
@@ -162,7 +161,7 @@ class ArticleTest < ActiveSupport::TestCase | @@ -162,7 +161,7 @@ class ArticleTest < ActiveSupport::TestCase | ||
162 | 161 | ||
163 | should 'add merit points to community when create a new article on community' do | 162 | should 'add merit points to community when create a new article on community' do |
164 | community = fast_create(Community) | 163 | community = fast_create(Community) |
165 | - create_point_rule_definition('article_community', community) | 164 | + create_point_rule_definition('article_community') |
166 | assert_difference 'community.score_points.count' do | 165 | assert_difference 'community.score_points.count' do |
167 | create(TextArticle, :profile_id => community.id, :author => person) | 166 | create(TextArticle, :profile_id => community.id, :author => person) |
168 | end | 167 | end |
test/unit/comment_test.rb
@@ -157,20 +157,19 @@ class CommentTest < ActiveSupport::TestCase | @@ -157,20 +157,19 @@ class CommentTest < ActiveSupport::TestCase | ||
157 | should 'add merit community points to author when create a new comment in a community' do | 157 | should 'add merit community points to author when create a new comment in a community' do |
158 | community = fast_create(Community) | 158 | community = fast_create(Community) |
159 | article = create(TextArticle, profile_id: community.id, author_id: person.id) | 159 | article = create(TextArticle, profile_id: community.id, author_id: person.id) |
160 | - create_point_rule_definition('comment_author', article.profile) | 160 | + rule = create_point_rule_definition('comment_author', article.profile) |
161 | create(Comment, :source => article, :author_id => person.id) | 161 | create(Comment, :source => article, :author_id => person.id) |
162 | - assert_equal 1, person.score_points.count | 162 | + assert_equal rule.weight, person.points_by_profile(article.profile.identifier) |
163 | end | 163 | end |
164 | 164 | ||
165 | should 'subtract merit community points from author when destroy a community comment' do | 165 | should 'subtract merit community points from author when destroy a community comment' do |
166 | community = fast_create(Community) | 166 | community = fast_create(Community) |
167 | - article = create(TextArticle, profile_id: community.id, author_id: person.id) | ||
168 | - create_point_rule_definition('comment_author', article.profile) | 167 | + article = create(TextArticle, profile_id: community.id, author_id: fast_create(Person).id) |
168 | + rule = create_point_rule_definition('comment_author', article.profile) | ||
169 | comment = create(Comment, :source => article, :author_id => person.id) | 169 | comment = create(Comment, :source => article, :author_id => person.id) |
170 | - assert_equal 1, person.score_points.count | 170 | + assert_equal rule.weight, person.points_by_profile(article.profile.identifier) |
171 | comment.destroy | 171 | comment.destroy |
172 | - assert_equal 2, person.score_points.count | ||
173 | - assert_equal 0, person.points | 172 | + assert_equal 0, person.points_by_profile(article.profile.identifier) |
174 | end | 173 | end |
175 | 174 | ||
176 | should 'add merit communty points to comment owner when an user like his comment inside a community' do | 175 | should 'add merit communty points to comment owner when an user like his comment inside a community' do |
@@ -193,7 +192,7 @@ class CommentTest < ActiveSupport::TestCase | @@ -193,7 +192,7 @@ class CommentTest < ActiveSupport::TestCase | ||
193 | Vote.create!(:voter => person, :voteable => comment, :vote => 1) | 192 | Vote.create!(:voter => person, :voteable => comment, :vote => 1) |
194 | 193 | ||
195 | c = GamificationPlugin::PointsCategorization.for_type(:vote_voteable_author).first | 194 | c = GamificationPlugin::PointsCategorization.for_type(:vote_voteable_author).first |
196 | - assert_difference 'comment.author.points', -1*c.weight do | 195 | + assert_difference 'comment.author.points_by_profile(community.identifier)', -1*c.weight do |
197 | Vote.where(:voteable_id => comment.id).destroy_all | 196 | Vote.where(:voteable_id => comment.id).destroy_all |
198 | end | 197 | end |
199 | end | 198 | end |
@@ -218,7 +217,7 @@ class CommentTest < ActiveSupport::TestCase | @@ -218,7 +217,7 @@ class CommentTest < ActiveSupport::TestCase | ||
218 | Vote.create!(:voter => person, :voteable => comment, :vote => -1) | 217 | Vote.create!(:voter => person, :voteable => comment, :vote => -1) |
219 | 218 | ||
220 | c = GamificationPlugin::PointsCategorization.for_type(:vote_voteable_author).first | 219 | c = GamificationPlugin::PointsCategorization.for_type(:vote_voteable_author).first |
221 | - assert_difference 'comment.author.points', c.weight do | 220 | + assert_difference 'comment.author.points_by_profile(community.identifier)', c.weight do |
222 | Vote.where(:voteable_id => comment.id).destroy_all | 221 | Vote.where(:voteable_id => comment.id).destroy_all |
223 | end | 222 | end |
224 | end | 223 | end |
@@ -226,8 +225,8 @@ class CommentTest < ActiveSupport::TestCase | @@ -226,8 +225,8 @@ class CommentTest < ActiveSupport::TestCase | ||
226 | should 'add merit community points to article author when create a new comment inside a community' do | 225 | should 'add merit community points to article author when create a new comment inside a community' do |
227 | community = fast_create(Community) | 226 | community = fast_create(Community) |
228 | article = create(TextArticle, profile_id: community.id, author_id: author.id) | 227 | article = create(TextArticle, profile_id: community.id, author_id: author.id) |
229 | - create_point_rule_definition('comment_article_author', community) | ||
230 | - assert_difference 'author.score_points.count' do | 228 | + rule = create_point_rule_definition('comment_article_author', community) |
229 | + assert_difference 'author.points_by_profile(community.identifier)', rule.weight do | ||
231 | create(Comment, :source => article, :author_id => author.id) | 230 | create(Comment, :source => article, :author_id => author.id) |
232 | end | 231 | end |
233 | end | 232 | end |