[15 Min Fix]: Fix incorrect scope used by metrics:overview rake task (#13138)

* Fix incorrect scope used by metrics:overview rake task

* Add spec for metrics:overview rake task

* Add guard clause to metrics:overview rake task
This commit is contained in:
Vaidehi Joshi 2021-03-25 17:31:10 -07:00 committed by GitHub
parent f0b8754d4f
commit a5f014f576
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 1 deletions

View file

@ -7,6 +7,6 @@ module Ahoy
belongs_to :visit
belongs_to :user, optional: true
scope :overview_link_clicks, -> { where(name: "Overview Link Clicked") }
scope :overview_link_clicks, -> { where(name: "Admin Overview Link Clicked") }
end
end

View file

@ -3,6 +3,9 @@ namespace :metrics do
task overview: :environment do
puts "Admin Overview Link Tracking for #{SiteConfig.app_domain}:"
links_by_target = Ahoy::Event.overview_link_clicks.group("properties -> 'target'").count
return unless links_by_target
links_by_target.each do |k, v|
puts "#{k.delete_prefix(URL.url)}: #{v}"
end

View file

@ -0,0 +1,23 @@
require "rails_helper"
RSpec.describe "Metrics Overview task", type: :task do
before do
Rake::Task.clear
PracticalDeveloper::Application.load_tasks
end
describe "#overview" do
let(:event_name) { "Admin Overview Link Clicked" }
let(:click_target) { "https://forem.gitbook.io/forem-admin-guide/quick-start-guide" }
it "returns the event count and target for admin overview events" do
create(:ahoy_event, name: event_name, properties: {
action: "click", target: click_target
})
expect { Rake::Task["metrics:overview"].invoke }.to output(
"Admin Overview Link Tracking for localhost:3000:\n#{click_target}: 1\n",
).to_stdout
end
end
end