2021-03-08 18:12:59 +05:30
# frozen_string_literal: true
require 'spec_helper'
RSpec . describe Gitlab :: Usage :: Metric do
2021-10-27 15:23:28 +05:30
let! ( :issue ) { create ( :issue ) }
let ( :attributes ) do
{
data_category : " Operational " ,
key_path : " counts.issues " ,
description : " Count of Issues created " ,
product_section : " dev " ,
product_stage : " plan " ,
product_group : " group::plan " ,
product_category : " issue_tracking " ,
value_type : " number " ,
2021-11-11 11:23:49 +05:30
status : " active " ,
2021-10-27 15:23:28 +05:30
time_frame : " all " ,
data_source : " database " ,
instrumentation_class : " CountIssuesMetric " ,
distribution : %w( ce ee ) ,
tier : %w( free premium ultimate )
}
2021-03-08 18:12:59 +05:30
end
2021-10-27 15:23:28 +05:30
let ( :issue_count_metric_definiton ) do
double ( :issue_count_metric_definiton ,
attributes . merge ( { attributes : attributes } )
)
end
2021-03-08 18:12:59 +05:30
2021-10-27 15:23:28 +05:30
before do
allow ( ApplicationRecord . connection ) . to receive ( :transaction_open? ) . and_return ( false )
end
2021-03-08 18:12:59 +05:30
2021-10-27 15:23:28 +05:30
describe '#with_value' do
it 'returns key_path metric with the corresponding value' do
expect ( described_class . new ( issue_count_metric_definiton ) . with_value ) . to eq ( { counts : { issues : 1 } } )
end
end
2021-03-08 18:12:59 +05:30
2021-10-27 15:23:28 +05:30
describe '#with_instrumentation' do
it 'returns key_path metric with the corresponding generated query' do
expect ( described_class . new ( issue_count_metric_definiton ) . with_instrumentation ) . to eq ( { counts : { issues : " SELECT COUNT( \" issues \" . \" id \" ) FROM \" issues \" " } } )
2021-03-08 18:12:59 +05:30
end
end
2021-12-11 22:18:48 +05:30
describe '#with_suggested_name' do
it 'returns key_path metric with the corresponding generated query' do
expect ( described_class . new ( issue_count_metric_definiton ) . with_suggested_name ) . to eq ( { counts : { issues : 'count_issues' } } )
end
end
2021-03-08 18:12:59 +05:30
end