diff options
Diffstat (limited to 'spec/lib/gitlab/usage_data_spec.rb')
-rw-r--r-- | spec/lib/gitlab/usage_data_spec.rb | 55 |
1 files changed, 39 insertions, 16 deletions
diff --git a/spec/lib/gitlab/usage_data_spec.rb b/spec/lib/gitlab/usage_data_spec.rb index 602f6640d72..97000856626 100644 --- a/spec/lib/gitlab/usage_data_spec.rb +++ b/spec/lib/gitlab/usage_data_spec.rb @@ -1129,12 +1129,40 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do end end + describe ".operating_system" do + let(:ohai_data) { { "platform" => "ubuntu", "platform_version" => "20.04" } } + + before do + allow_next_instance_of(Ohai::System) do |ohai| + allow(ohai).to receive(:data).and_return(ohai_data) + end + end + + subject { described_class.operating_system } + + it { is_expected.to eq("ubuntu-20.04") } + + context 'when on Debian with armv architecture' do + let(:ohai_data) { { "platform" => "debian", "platform_version" => "10", 'kernel' => { 'machine' => 'armv' } } } + + it { is_expected.to eq("raspbian-10") } + end + end + describe ".system_usage_data_settings" do + before do + allow(described_class).to receive(:operating_system).and_return('ubuntu-20.04') + end + subject { described_class.system_usage_data_settings } it 'gathers settings usage data', :aggregate_failures do expect(subject[:settings][:ldap_encrypted_secrets_enabled]).to eq(Gitlab::Auth::Ldap::Config.encrypted_secrets.active?) end + + it 'populates operating system information' do + expect(subject[:settings][:operating_system]).to eq('ubuntu-20.04') + end end end @@ -1325,7 +1353,7 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do let(:categories) { ::Gitlab::UsageDataCounters::HLLRedisCounter.categories } let(:ineligible_total_categories) do - %w[source_code ci_secrets_management incident_management_alerts snippets terraform pipeline_authoring] + %w[source_code ci_secrets_management incident_management_alerts snippets terraform epics_usage] end it 'has all known_events' do @@ -1347,25 +1375,20 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do end end - describe '.aggregated_metrics_weekly' do - subject(:aggregated_metrics_payload) { described_class.aggregated_metrics_weekly } + describe '.aggregated_metrics_data' do + it 'uses ::Gitlab::Usage::Metrics::Aggregates::Aggregate methods', :aggregate_failures do + expected_payload = { + counts_weekly: { aggregated_metrics: { global_search_gmau: 123 } }, + counts_monthly: { aggregated_metrics: { global_search_gmau: 456 } }, + counts: { aggregate_global_search_gmau: 789 } + } - it 'uses ::Gitlab::Usage::Metrics::Aggregates::Aggregate#weekly_data', :aggregate_failures do expect_next_instance_of(::Gitlab::Usage::Metrics::Aggregates::Aggregate) do |instance| expect(instance).to receive(:weekly_data).and_return(global_search_gmau: 123) + expect(instance).to receive(:monthly_data).and_return(global_search_gmau: 456) + expect(instance).to receive(:all_time_data).and_return(global_search_gmau: 789) end - expect(aggregated_metrics_payload).to eq(aggregated_metrics: { global_search_gmau: 123 }) - end - end - - describe '.aggregated_metrics_monthly' do - subject(:aggregated_metrics_payload) { described_class.aggregated_metrics_monthly } - - it 'uses ::Gitlab::Usage::Metrics::Aggregates::Aggregate#monthly_data', :aggregate_failures do - expect_next_instance_of(::Gitlab::Usage::Metrics::Aggregates::Aggregate) do |instance| - expect(instance).to receive(:monthly_data).and_return(global_search_gmau: 123) - end - expect(aggregated_metrics_payload).to eq(aggregated_metrics: { global_search_gmau: 123 }) + expect(described_class.aggregated_metrics_data).to eq(expected_payload) end end |