Only Update page_views When They Are Valid (ie created) (#5195) [deploy]
This commit is contained in:
parent
0ca803ec4a
commit
faa4325c1f
2 changed files with 10 additions and 5 deletions
|
|
@ -18,8 +18,10 @@ class PageViewsController < ApplicationMetalController
|
|||
|
||||
def update
|
||||
if session_current_user_id
|
||||
page_view = PageView.find_or_create_by(article_id: params[:id], user_id: session_current_user_id)
|
||||
page_view.update_column(:time_tracked_in_seconds, page_view.time_tracked_in_seconds + 15)
|
||||
page_view = PageView.order("created_at DESC").find_or_create_by(article_id: params[:id], user_id: session_current_user_id)
|
||||
unless page_view.new_record?
|
||||
page_view.update_column(:time_tracked_in_seconds, page_view.time_tracked_in_seconds + 15)
|
||||
end
|
||||
end
|
||||
|
||||
head :ok
|
||||
|
|
|
|||
|
|
@ -91,12 +91,15 @@ RSpec.describe "PageViews", type: :request do
|
|||
end
|
||||
|
||||
it "updates a new page view time on page by 15" do
|
||||
post "/page_views", params: {
|
||||
article_id: article.id
|
||||
}
|
||||
post "/page_views", params: { article_id: article.id }
|
||||
put "/page_views/" + article.id.to_s
|
||||
expect(PageView.last.time_tracked_in_seconds).to eq(30)
|
||||
end
|
||||
|
||||
it "does not update an invalid page view" do
|
||||
invalid_id = article.id + 100
|
||||
expect { put "/page_views/" + invalid_id.to_s }.not_to raise_error
|
||||
end
|
||||
end
|
||||
|
||||
context "when user is not signed in" do
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue