diff --git a/app/controllers/published_pages_controller.rb b/app/controllers/published_pages_controller.rb index 9c3f4ccdd81..eabe216f119 100644 --- a/app/controllers/published_pages_controller.rb +++ b/app/controllers/published_pages_controller.rb @@ -35,6 +35,8 @@ class PublishedPagesController < ApplicationController @site_url = Discourse.base_url @border_color = "#" + ColorScheme.base_colors["tertiary"] + TopicViewItem.add(pp.topic.id, request.remote_ip, current_user ? current_user.id : nil) + @body_classes = Set.new([ 'published-page', params[:slug], diff --git a/spec/requests/published_pages_controller_spec.rb b/spec/requests/published_pages_controller_spec.rb index 7236fb089ad..c5b6491f4a5 100644 --- a/spec/requests/published_pages_controller_spec.rb +++ b/spec/requests/published_pages_controller_spec.rb @@ -4,6 +4,7 @@ RSpec.describe PublishedPagesController do fab!(:published_page) { Fabricate(:published_page) } fab!(:admin) { Fabricate(:admin) } fab!(:user) { Fabricate(:user) } + fab!(:user2) { Fabricate(:user) } context "when enabled" do before do @@ -39,6 +40,14 @@ RSpec.describe PublishedPagesController do end describe "#show" do + + it 'records a view' do + sign_in(user2) + expect do + get published_page.path + end.to change(TopicViewItem, :count).by(1) + end + it "returns 404 for a missing article" do get "/pub/no-article-here-no-thx" expect(response.status).to eq(404)