summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorrpereira2 <rpereira@gitlab.com>2019-04-16 21:07:47 +0530
committersyasonik <syasonik@gitlab.com>2019-04-24 18:23:03 +0800
commit0007a42a7bcc7bcee3dd10a3132dc96478b77e80 (patch)
treead3c60001843faba84d56d329bdb1b5671263dab /spec/lib
parentb1773bf8b741ffc52e2699848e42aa0a054c9e6e (diff)
downloadgitlab-ce-0007a42a7bcc7bcee3dd10a3132dc96478b77e80.tar.gz
Correct the order of groups and panels
- Order groups by descending order of priority. - Order panels by descending order of weight. - Perform sorting after adding project/custom metrics.
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/gitlab/metrics_dashboard/processor_spec.rb39
1 files changed, 20 insertions, 19 deletions
diff --git a/spec/lib/gitlab/metrics_dashboard/processor_spec.rb b/spec/lib/gitlab/metrics_dashboard/processor_spec.rb
index 0b3ee90d3e8..973b3e2e13a 100644
--- a/spec/lib/gitlab/metrics_dashboard/processor_spec.rb
+++ b/spec/lib/gitlab/metrics_dashboard/processor_spec.rb
@@ -18,38 +18,39 @@ describe Gitlab::MetricsDashboard::Processor do
end
context 'when the project has associated metrics' do
- let!(:project_metric) { create(:prometheus_metric, project: project) }
+ let!(:project_response_metric) { create(:prometheus_metric, project: project, group: :response) }
+ let!(:project_system_metric) { create(:prometheus_metric, project: project, group: :system) }
+ let!(:project_business_metric) { create(:prometheus_metric, project: project, group: :business) }
it 'includes project-specific metrics' do
- project_metric_details = {
- query_range: project_metric.query,
- unit: project_metric.unit,
- label: project_metric.legend,
- metric_id: project_metric.id
- }
-
- expect(all_metrics).to include project_metric_details
+ expect(all_metrics).to include get_metric_details(project_system_metric)
+ expect(all_metrics).to include get_metric_details(project_response_metric)
+ expect(all_metrics).to include get_metric_details(project_business_metric)
end
- it 'includes project metrics at the end of the config' do
- expected_metrics_order = ['metric_b', 'metric_a2', 'metric_a1', nil]
- actual_metrics_order = all_metrics.map { |m| m[:id] }
+ it 'orders groups by priority and panels by weight' do
+ expected_metrics_order = ['metric_a2', 'metric_a1', 'metric_b', project_business_metric.id, project_response_metric.id, project_system_metric.id]
+ actual_metrics_order = all_metrics.map { |m| m[:id] || m[:metric_id] }
expect(actual_metrics_order).to eq expected_metrics_order
end
end
-
- it 'orders groups by priority and panels by weight' do
- expected_metrics_order = %w(metric_b metric_a2 metric_a1)
- actual_metrics_order = all_metrics.map { |m| m[:id] }
-
- expect(actual_metrics_order).to eq expected_metrics_order
- end
end
+ private
+
def all_metrics
dashboard[:panel_groups].map do |group|
group[:panels].map { |panel| panel[:metrics] }
end.flatten
end
+
+ def get_metric_details(metric)
+ {
+ query_range: metric.query,
+ unit: metric.unit,
+ label: metric.legend,
+ metric_id: metric.id
+ }
+ end
end