diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
commit | 8b573c94895dc0ac0e1d9d59cf3e8745e8b539ca (patch) | |
tree | 544930fb309b30317ae9797a9683768705d664c4 /spec/lib/gitlab/cycle_analytics | |
parent | 4b1de649d0168371549608993deac953eb692019 (diff) |
Add latest changes from gitlab-org/gitlab@13-7-stable-eev13.7.0-rc42
Diffstat (limited to 'spec/lib/gitlab/cycle_analytics')
-rw-r--r-- | spec/lib/gitlab/cycle_analytics/events_spec.rb | 3 | ||||
-rw-r--r-- | spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb | 4 | ||||
-rw-r--r-- | spec/lib/gitlab/cycle_analytics/usage_data_spec.rb | 95 |
3 files changed, 5 insertions, 97 deletions
diff --git a/spec/lib/gitlab/cycle_analytics/events_spec.rb b/spec/lib/gitlab/cycle_analytics/events_spec.rb index 2c5988f06b2..553f33a66c4 100644 --- a/spec/lib/gitlab/cycle_analytics/events_spec.rb +++ b/spec/lib/gitlab/cycle_analytics/events_spec.rb @@ -40,6 +40,9 @@ RSpec.describe 'value stream analytics events', :aggregate_failures do before do create_commit_referencing_issue(context) + + # Adding extra duration because the new VSA backend filters out 0 durations between these columns + context.metrics.update!(first_mentioned_in_commit_at: context.metrics.first_associated_with_milestone_at + 1.day) end it 'has correct attributes' do diff --git a/spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb b/spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb index 719d4a69985..21503dc1501 100644 --- a/spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb +++ b/spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb @@ -11,7 +11,7 @@ RSpec.describe Gitlab::CycleAnalytics::StageSummary do project.add_maintainer(user) end - let(:stage_summary) { described_class.new(project, options).data } + let(:stage_summary) { described_class.new(project, **options).data } describe "#new_issues" do subject { stage_summary.first } @@ -121,7 +121,7 @@ RSpec.describe Gitlab::CycleAnalytics::StageSummary do end it 'does not include commit stats' do - data = described_class.new(project, options).data + data = described_class.new(project, **options).data expect(includes_commits?(data)).to be_falsy end diff --git a/spec/lib/gitlab/cycle_analytics/usage_data_spec.rb b/spec/lib/gitlab/cycle_analytics/usage_data_spec.rb deleted file mode 100644 index 9ebdacb16de..00000000000 --- a/spec/lib/gitlab/cycle_analytics/usage_data_spec.rb +++ /dev/null @@ -1,95 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Gitlab::CycleAnalytics::UsageData do - describe '#to_json' do - before do - # Since git commits only have second precision, round up to the - # nearest second to ensure we have accurate median and standard - # deviation calculations. - current_time = Time.at(Time.now.to_i) - - Timecop.freeze(current_time) do - user = create(:user, :admin) - projects = create_list(:project, 2, :repository) - - projects.each_with_index do |project, time| - issue = create(:issue, project: project, created_at: (time + 1).hour.ago) - - allow_next_instance_of(Gitlab::ReferenceExtractor) do |instance| - allow(instance).to receive(:issues).and_return([issue]) - end - - milestone = create(:milestone, project: project) - mr = create_merge_request_closing_issue(user, project, issue, commit_message: "References #{issue.to_reference}") - pipeline = create(:ci_empty_pipeline, status: 'created', project: project, ref: mr.source_branch, sha: mr.source_branch_sha, head_pipeline_of: mr) - - create_cycle(user, project, issue, mr, milestone, pipeline) - deploy_master(user, project, environment: 'staging') - deploy_master(user, project) - end - end - end - - context 'a valid usage data result' do - let(:expect_values_per_stage) do - { - issue: { - average: 5400, - sd: 2545, - missing: 0 - }, - plan: { - average: 1, - sd: 0, - missing: 0 - }, - code: { - average: nil, - sd: 0, - missing: 2 - }, - test: { - average: nil, - sd: 0, - missing: 2 - }, - review: { - average: 0, - sd: 0, - missing: 0 - }, - staging: { - average: 0, - sd: 0, - missing: 0 - }, - production: { - average: 5400, - sd: 2545, - missing: 0 - } - } - end - - it 'returns the aggregated usage data of every selected project', :sidekiq_might_not_need_inline do - result = subject.to_json - - expect(result).to have_key(:avg_cycle_analytics) - - CycleAnalytics::LevelBase::STAGES.each do |stage| - expect(result[:avg_cycle_analytics]).to have_key(stage) - - stage_values = result[:avg_cycle_analytics][stage] - expected_values = expect_values_per_stage[stage] - - expected_values.each_pair do |op, value| - expect(stage_values).to have_key(op) - expect(stage_values[op]).to eq(value) - end - end - end - end - end -end |