diff options
Diffstat (limited to 'spec/requests/api/usage_data_queries_spec.rb')
-rw-r--r-- | spec/requests/api/usage_data_queries_spec.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/requests/api/usage_data_queries_spec.rb b/spec/requests/api/usage_data_queries_spec.rb index 69a8d865a59..6ce03954246 100644 --- a/spec/requests/api/usage_data_queries_spec.rb +++ b/spec/requests/api/usage_data_queries_spec.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require 'spec_helper' +require 'rake_helper' RSpec.describe API::UsageDataQueries do include UsageDataHelpers @@ -64,5 +65,36 @@ RSpec.describe API::UsageDataQueries do expect(response).to have_gitlab_http_status(:forbidden) end end + + context 'when querying sql metrics' do + let(:file) { Rails.root.join('tmp', 'test', 'sql_metrics_queries.json') } + + before do + Rake.application.rake_require 'tasks/gitlab/usage_data' + + run_rake_task('gitlab:usage_data:generate_sql_metrics_queries') + end + + after do + FileUtils.rm_rf(file) + end + + it 'matches the generated query' do + Timecop.freeze(2021, 1, 1) do + get api(endpoint, admin) + end + + data = Gitlab::Json.parse(File.read(file)) + + expect( + json_response['counts_monthly'].except('aggregated_metrics') + ).to eq(data['counts_monthly'].except('aggregated_metrics')) + + expect(json_response['counts']).to eq(data['counts']) + expect(json_response['active_user_count']).to eq(data['active_user_count']) + expect(json_response['usage_activity_by_stage']).to eq(data['usage_activity_by_stage']) + expect(json_response['usage_activity_by_stage_monthly']).to eq(data['usage_activity_by_stage_monthly']) + end + end end end |