metrics: add counter for created/destroyed users
This commit is contained in:
parent
429c82bd3c
commit
a9cf00f75e
|
@ -134,3 +134,6 @@ Style/EndlessMethod:
|
||||||
|
|
||||||
Style/TrailingCommaInHashLiteral:
|
Style/TrailingCommaInHashLiteral:
|
||||||
EnforcedStyleForMultiline: consistent_comma
|
EnforcedStyleForMultiline: consistent_comma
|
||||||
|
|
||||||
|
Style/TrailingCommaInArguments:
|
||||||
|
EnforcedStyleForMultiline: consistent_comma
|
||||||
|
|
|
@ -85,8 +85,14 @@ class User < ApplicationRecord # rubocop:disable Metrics/ClassLength
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
after_destroy do
|
||||||
|
Retrospring::Metrics::USERS_DESTROYED.increment
|
||||||
|
end
|
||||||
|
|
||||||
after_create do
|
after_create do
|
||||||
Profile.create(user_id: id) if Profile.where(user_id: id).count.zero?
|
Profile.create(user_id: id) if Profile.where(user_id: id).count.zero?
|
||||||
|
|
||||||
|
Retrospring::Metrics::USERS_CREATED.increment
|
||||||
end
|
end
|
||||||
|
|
||||||
# use the screen name as parameter for url helpers
|
# use the screen name as parameter for url helpers
|
||||||
|
|
|
@ -43,6 +43,16 @@ module Retrospring
|
||||||
docstring: "How many comments got created"
|
docstring: "How many comments got created"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
USERS_CREATED = counter(
|
||||||
|
:retrospring_users_created_total,
|
||||||
|
docstring: "How many users got created"
|
||||||
|
)
|
||||||
|
|
||||||
|
USERS_DESTROYED = counter(
|
||||||
|
:retrospring_users_destroyed_total,
|
||||||
|
docstring: "How many users deleted their accounts"
|
||||||
|
)
|
||||||
|
|
||||||
# metrics from Sidekiq::Stats.new
|
# metrics from Sidekiq::Stats.new
|
||||||
SIDEKIQ = {
|
SIDEKIQ = {
|
||||||
processed: gauge(
|
processed: gauge(
|
||||||
|
|
|
@ -33,6 +33,45 @@ RSpec.describe User, type: :model do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "callbacks" do
|
||||||
|
describe "before_destroy" do
|
||||||
|
it "marks reports about this user as deleted" do
|
||||||
|
other_user = FactoryBot.create(:user)
|
||||||
|
other_user.report me, "va tutto benissimo"
|
||||||
|
|
||||||
|
expect { me.destroy }
|
||||||
|
.to change { Reports::User.find_by(target_id: me.id).deleted? }
|
||||||
|
.from(false)
|
||||||
|
.to(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "after_destroy" do
|
||||||
|
it "increments the users_destroyed metric" do
|
||||||
|
expect { me.destroy }.to change { Retrospring::Metrics::USERS_DESTROYED.values.values.sum }.by(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "after_create" do
|
||||||
|
subject :user do
|
||||||
|
User.create!(
|
||||||
|
screen_name: "konqi",
|
||||||
|
email: "konqi@example.rrerr.net",
|
||||||
|
password: "dragonsRQt5",
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "creates a profile for the user" do
|
||||||
|
expect { user }.to change { Profile.count }.by(1)
|
||||||
|
expect(Profile.find_by(user:).user).to eq(user)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "increments the users_created metric" do
|
||||||
|
expect { user }.to change { Retrospring::Metrics::USERS_CREATED.values.values.sum }.by(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "custom sharing url validation" do
|
describe "custom sharing url validation" do
|
||||||
subject do
|
subject do
|
||||||
FactoryBot.build(:user, sharing_custom_url: url).tap(&:validate).errors[:sharing_custom_url]
|
FactoryBot.build(:user, sharing_custom_url: url).tap(&:validate).errors[:sharing_custom_url]
|
||||||
|
|
Loading…
Reference in New Issue