Add coverage for admin/metrics base classes, simplify subclass generation (#29527)
This commit is contained in:
parent
b9722dfe2b
commit
a7284690fc
4 changed files with 67 additions and 23 deletions
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
class Admin::Metrics::Dimension
|
class Admin::Metrics::Dimension
|
||||||
DIMENSIONS = {
|
DIMENSIONS = {
|
||||||
languages: Admin::Metrics::Dimension::LanguagesDimension,
|
languages: LanguagesDimension,
|
||||||
sources: Admin::Metrics::Dimension::SourcesDimension,
|
sources: SourcesDimension,
|
||||||
servers: Admin::Metrics::Dimension::ServersDimension,
|
servers: ServersDimension,
|
||||||
space_usage: Admin::Metrics::Dimension::SpaceUsageDimension,
|
space_usage: SpaceUsageDimension,
|
||||||
software_versions: Admin::Metrics::Dimension::SoftwareVersionsDimension,
|
software_versions: SoftwareVersionsDimension,
|
||||||
tag_servers: Admin::Metrics::Dimension::TagServersDimension,
|
tag_servers: TagServersDimension,
|
||||||
tag_languages: Admin::Metrics::Dimension::TagLanguagesDimension,
|
tag_languages: TagLanguagesDimension,
|
||||||
instance_accounts: Admin::Metrics::Dimension::InstanceAccountsDimension,
|
instance_accounts: InstanceAccountsDimension,
|
||||||
instance_languages: Admin::Metrics::Dimension::InstanceLanguagesDimension,
|
instance_languages: InstanceLanguagesDimension,
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
def self.retrieve(dimension_keys, start_at, end_at, limit, params)
|
def self.retrieve(dimension_keys, start_at, end_at, limit, params)
|
||||||
|
|
|
@ -2,20 +2,20 @@
|
||||||
|
|
||||||
class Admin::Metrics::Measure
|
class Admin::Metrics::Measure
|
||||||
MEASURES = {
|
MEASURES = {
|
||||||
active_users: Admin::Metrics::Measure::ActiveUsersMeasure,
|
active_users: ActiveUsersMeasure,
|
||||||
new_users: Admin::Metrics::Measure::NewUsersMeasure,
|
new_users: NewUsersMeasure,
|
||||||
interactions: Admin::Metrics::Measure::InteractionsMeasure,
|
interactions: InteractionsMeasure,
|
||||||
opened_reports: Admin::Metrics::Measure::OpenedReportsMeasure,
|
opened_reports: OpenedReportsMeasure,
|
||||||
resolved_reports: Admin::Metrics::Measure::ResolvedReportsMeasure,
|
resolved_reports: ResolvedReportsMeasure,
|
||||||
tag_accounts: Admin::Metrics::Measure::TagAccountsMeasure,
|
tag_accounts: TagAccountsMeasure,
|
||||||
tag_uses: Admin::Metrics::Measure::TagUsesMeasure,
|
tag_uses: TagUsesMeasure,
|
||||||
tag_servers: Admin::Metrics::Measure::TagServersMeasure,
|
tag_servers: TagServersMeasure,
|
||||||
instance_accounts: Admin::Metrics::Measure::InstanceAccountsMeasure,
|
instance_accounts: InstanceAccountsMeasure,
|
||||||
instance_media_attachments: Admin::Metrics::Measure::InstanceMediaAttachmentsMeasure,
|
instance_media_attachments: InstanceMediaAttachmentsMeasure,
|
||||||
instance_reports: Admin::Metrics::Measure::InstanceReportsMeasure,
|
instance_reports: InstanceReportsMeasure,
|
||||||
instance_statuses: Admin::Metrics::Measure::InstanceStatusesMeasure,
|
instance_statuses: InstanceStatusesMeasure,
|
||||||
instance_follows: Admin::Metrics::Measure::InstanceFollowsMeasure,
|
instance_follows: InstanceFollowsMeasure,
|
||||||
instance_followers: Admin::Metrics::Measure::InstanceFollowersMeasure,
|
instance_followers: InstanceFollowersMeasure,
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
def self.retrieve(measure_keys, start_at, end_at, params)
|
def self.retrieve(measure_keys, start_at, end_at, params)
|
||||||
|
|
22
spec/lib/admin/metrics/dimension_spec.rb
Normal file
22
spec/lib/admin/metrics/dimension_spec.rb
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe Admin::Metrics::Dimension do
|
||||||
|
describe '.retrieve' do
|
||||||
|
subject { described_class.retrieve(reports, start_at, end_at, 5, params) }
|
||||||
|
|
||||||
|
let(:start_at) { 2.days.ago }
|
||||||
|
let(:end_at) { Time.now.utc }
|
||||||
|
let(:params) { ActionController::Parameters.new({ instance_accounts: [123], instance_languages: ['en'] }) }
|
||||||
|
let(:reports) { [:instance_accounts, :instance_languages] }
|
||||||
|
|
||||||
|
it 'returns instances of provided classes' do
|
||||||
|
expect(subject)
|
||||||
|
.to contain_exactly(
|
||||||
|
be_a(Admin::Metrics::Dimension::InstanceAccountsDimension),
|
||||||
|
be_a(Admin::Metrics::Dimension::InstanceLanguagesDimension)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
22
spec/lib/admin/metrics/measure_spec.rb
Normal file
22
spec/lib/admin/metrics/measure_spec.rb
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe Admin::Metrics::Measure do
|
||||||
|
describe '.retrieve' do
|
||||||
|
subject { described_class.retrieve(reports, start_at, end_at, params) }
|
||||||
|
|
||||||
|
let(:start_at) { 2.days.ago }
|
||||||
|
let(:end_at) { Time.now.utc }
|
||||||
|
let(:params) { ActionController::Parameters.new({ instance_accounts: [123], instance_followers: [123] }) }
|
||||||
|
let(:reports) { [:instance_accounts, :instance_followers] }
|
||||||
|
|
||||||
|
it 'returns instances of provided classes' do
|
||||||
|
expect(subject)
|
||||||
|
.to contain_exactly(
|
||||||
|
be_a(Admin::Metrics::Measure::InstanceAccountsMeasure),
|
||||||
|
be_a(Admin::Metrics::Measure::InstanceFollowersMeasure)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue