diff options
Diffstat (limited to 'spec/lib/gitlab/cycle_analytics/events_spec.rb')
-rw-r--r-- | spec/lib/gitlab/cycle_analytics/events_spec.rb | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/spec/lib/gitlab/cycle_analytics/events_spec.rb b/spec/lib/gitlab/cycle_analytics/events_spec.rb deleted file mode 100644 index 553f33a66c4..00000000000 --- a/spec/lib/gitlab/cycle_analytics/events_spec.rb +++ /dev/null @@ -1,182 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'value stream analytics events', :aggregate_failures do - let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { create(:user, :admin) } - let(:from_date) { 10.days.ago } - let!(:context) { create(:issue, project: project, created_at: 2.days.ago) } - - let(:events) do - CycleAnalytics::ProjectLevel - .new(project, options: { from: from_date, current_user: user })[stage] - .events - end - - let(:event) { events.first } - - before do - setup(context) - end - - describe '#issue_events' do - let(:stage) { :issue } - - it 'has correct attributes' do - expect(event[:total_time]).not_to be_empty - expect(event[:title]).to eq(context.title) - expect(event[:url]).not_to be_nil - expect(event[:iid]).to eq(context.iid.to_s) - expect(event[:created_at]).to end_with('ago') - expect(event[:author][:web_url]).not_to be_nil - expect(event[:author][:avatar_url]).not_to be_nil - expect(event[:author][:name]).to eq(context.author.name) - end - end - - describe '#plan_events' do - let(:stage) { :plan } - - 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 - expect(event[:total_time]).not_to be_empty - expect(event[:title]).to eq(context.title) - expect(event[:url]).not_to be_nil - expect(event[:iid]).to eq(context.iid.to_s) - expect(event[:created_at]).to end_with('ago') - expect(event[:author][:web_url]).not_to be_nil - expect(event[:author][:avatar_url]).not_to be_nil - expect(event[:author][:name]).to eq(context.author.name) - end - end - - describe '#code_events' do - let(:stage) { :code } - let!(:merge_request) { MergeRequest.first } - - before do - create_commit_referencing_issue(context) - end - - it 'has correct attributes' do - expect(event[:total_time]).not_to be_empty - expect(event[:title]).to eq('Awesome merge_request') - expect(event[:iid]).to eq(context.iid.to_s) - expect(event[:created_at]).to end_with('ago') - expect(event[:author][:web_url]).not_to be_nil - expect(event[:author][:avatar_url]).not_to be_nil - expect(event[:author][:name]).to eq(MergeRequest.first.author.name) - end - end - - describe '#test_events', :sidekiq_might_not_need_inline do - let(:stage) { :test } - - let(:merge_request) { MergeRequest.first } - let!(:context) { create(:issue, project: project, created_at: 2.days.ago) } - - let!(:pipeline) do - create(:ci_pipeline, - ref: merge_request.source_branch, - sha: merge_request.diff_head_sha, - project: project, - head_pipeline_of: merge_request) - end - - before do - create(:ci_build, :success, pipeline: pipeline, author: user) - create(:ci_build, :success, pipeline: pipeline, author: user) - - pipeline.run! - pipeline.succeed! - merge_merge_requests_closing_issue(user, project, context) - end - - it 'has correct attributes' do - expect(event[:name]).not_to be_nil - expect(event[:id]).not_to be_nil - expect(event[:url]).not_to be_nil - expect(event[:branch]).not_to be_nil - expect(event[:branch][:url]).not_to be_nil - expect(event[:short_sha]).not_to be_nil - expect(event[:commit_url]).not_to be_nil - expect(event[:date]).not_to be_nil - expect(event[:total_time]).not_to be_empty - end - end - - describe '#review_events' do - let(:stage) { :review } - let!(:context) { create(:issue, project: project, created_at: 2.days.ago) } - - before do - merge_merge_requests_closing_issue(user, project, context) - end - - it 'has correct attributes' do - expect(event[:total_time]).not_to be_empty - expect(event[:title]).to eq('Awesome merge_request') - expect(event[:iid]).to eq(context.iid.to_s) - expect(event[:url]).not_to be_nil - expect(event[:state]).not_to be_nil - expect(event[:created_at]).not_to be_nil - expect(event[:author][:web_url]).not_to be_nil - expect(event[:author][:avatar_url]).not_to be_nil - expect(event[:author][:name]).to eq(MergeRequest.first.author.name) - end - end - - describe '#staging_events', :sidekiq_might_not_need_inline do - let(:stage) { :staging } - let(:merge_request) { MergeRequest.first } - - let!(:pipeline) do - create(:ci_pipeline, - ref: merge_request.source_branch, - sha: merge_request.diff_head_sha, - project: project, - head_pipeline_of: merge_request) - end - - before do - create(:ci_build, :success, pipeline: pipeline, author: user) - create(:ci_build, :success, pipeline: pipeline, author: user) - - pipeline.run! - pipeline.succeed! - - merge_merge_requests_closing_issue(user, project, context) - deploy_master(user, project) - end - - it 'has correct attributes' do - expect(event[:name]).not_to be_nil - expect(event[:id]).not_to be_nil - expect(event[:url]).not_to be_nil - expect(event[:branch]).not_to be_nil - expect(event[:branch][:url]).not_to be_nil - expect(event[:short_sha]).not_to be_nil - expect(event[:commit_url]).not_to be_nil - expect(event[:date]).not_to be_nil - expect(event[:total_time]).not_to be_empty - expect(event[:author][:web_url]).not_to be_nil - expect(event[:author][:avatar_url]).not_to be_nil - expect(event[:author][:name]).to eq(MergeRequest.first.author.name) - end - end - - def setup(context) - milestone = create(:milestone, project: project) - context.update!(milestone: milestone) - mr = create_merge_request_closing_issue(user, project, context, commit_message: "References #{context.to_reference}") - - ProcessCommitWorker.new.perform(project.id, user.id, mr.commits.last.to_hash) - end -end |