From 923afed4e46fd140cef141292d4bcd9e6e555c05 Mon Sep 17 00:00:00 2001 From: Ben Halpern Date: Tue, 10 Mar 2020 14:14:08 -0400 Subject: [PATCH] Move math around parenthases in score_experience_level (#6569) [deploy] * Move math around parenthases in score_experience_level * Clean up tests * Remove flash notice from comments form --- app/services/articles/feed.rb | 2 +- spec/services/articles/feed_spec.rb | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/services/articles/feed.rb b/app/services/articles/feed.rb index bbd9a5002..0503e64fb 100644 --- a/app/services/articles/feed.rb +++ b/app/services/articles/feed.rb @@ -139,7 +139,7 @@ module Articles end def score_experience_level(article) - - ((article.experience_level_rating - (@user&.experience_level || 5).abs) / 2) + - ((article.experience_level_rating - (@user&.experience_level || 5)).abs / 2) end def score_comments(article) diff --git a/spec/services/articles/feed_spec.rb b/spec/services/articles/feed_spec.rb index 7ce5ceb8d..f45dd4ae7 100644 --- a/spec/services/articles/feed_spec.rb +++ b/spec/services/articles/feed_spec.rb @@ -350,21 +350,34 @@ RSpec.describe Articles::Feed, type: :service do end describe "#score_experience_level" do - let(:article) { create(:article, experience_level_rating: 9) } + let(:article) { create(:article, experience_level_rating: 7) } - context "when user has an experience level" do - let(:user) { create(:user, experience_level: 3) } + context "when user has a further experience level" do + let(:user) { create(:user, experience_level: 1) } it "returns negative of (absolute value of the difference between article and user experience) divided by 2" do expect(feed.score_experience_level(article)).to eq(-3) end + + it "returns proper negative when fractional" do + article.experience_level_rating = 8 + expect(feed.score_experience_level(article)).to eq(-3.5) + end + end + + context "when user has a closer experience level" do + let(:user) { create(:user, experience_level: 9) } + + it "returns negative of (absolute value of the difference between article and user experience) divided by 2" do + expect(feed.score_experience_level(article)).to eq(-1) + end end context "when the user does not have an experience level set" do let(:user) { create(:user, experience_level: nil) } it "uses a value of 5 for user experience level" do - expect(feed.score_experience_level(article)).to eq(-2) + expect(feed.score_experience_level(article)).to eq(-1) end end end