diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-20 23:50:22 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-20 23:50:22 +0000 |
commit | 9dc93a4519d9d5d7be48ff274127136236a3adb3 (patch) | |
tree | 70467ae3692a0e35e5ea56bcb803eb512a10bedb /spec/services/issues | |
parent | 4b0f34b6d759d6299322b3a54453e930c6121ff0 (diff) | |
download | gitlab-ce-9dc93a4519d9d5d7be48ff274127136236a3adb3.tar.gz |
Add latest changes from gitlab-org/gitlab@13-11-stable-eev13.11.0-rc43
Diffstat (limited to 'spec/services/issues')
-rw-r--r-- | spec/services/issues/after_create_service_spec.rb | 52 | ||||
-rw-r--r-- | spec/services/issues/build_service_spec.rb | 1 | ||||
-rw-r--r-- | spec/services/issues/clone_service_spec.rb | 1 | ||||
-rw-r--r-- | spec/services/issues/create_service_spec.rb | 28 | ||||
-rw-r--r-- | spec/services/issues/export_csv_service_spec.rb | 1 | ||||
-rw-r--r-- | spec/services/issues/move_service_spec.rb | 1 | ||||
-rw-r--r-- | spec/services/issues/related_branches_service_spec.rb | 1 |
7 files changed, 61 insertions, 24 deletions
diff --git a/spec/services/issues/after_create_service_spec.rb b/spec/services/issues/after_create_service_spec.rb new file mode 100644 index 00000000000..bc9be3211d3 --- /dev/null +++ b/spec/services/issues/after_create_service_spec.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Issues::AfterCreateService do + include AfterNextHelpers + + let_it_be(:project) { create(:project) } + let_it_be(:current_user) { create(:user) } + let_it_be(:assignee) { create(:user) } + let_it_be(:milestone) { create(:milestone, project: project) } + let_it_be(:issue) { create(:issue, project: project, author: current_user, milestone: milestone, assignee_ids: [assignee.id]) } + + subject(:after_create_service) { described_class.new(project, current_user) } + + describe '#execute' do + it 'creates a pending todo for new assignee' do + attributes = { + project: project, + author: current_user, + user: assignee, + target_id: issue.id, + target_type: issue.class.name, + action: Todo::ASSIGNED, + state: :pending + } + + expect { after_create_service.execute(issue) }.to change { Todo.where(attributes).count }.by(1) + end + + it 'deletes milestone issues count cache' do + expect_next(Milestones::IssuesCountService, milestone) + .to receive(:delete_cache).and_call_original + + after_create_service.execute(issue) + end + + context 'with a regular issue' do + it_behaves_like 'does not track incident management event', :incident_management_incident_created do + subject { after_create_service.execute(issue) } + end + end + + context 'with an incident issue' do + let(:issue) { create(:issue, :incident, project: project, author: current_user) } + + it_behaves_like 'an incident management tracked event', :incident_management_incident_created do + subject { after_create_service.execute(issue) } + end + end + end +end diff --git a/spec/services/issues/build_service_spec.rb b/spec/services/issues/build_service_spec.rb index 16433d49ca1..80fe2474ecd 100644 --- a/spec/services/issues/build_service_spec.rb +++ b/spec/services/issues/build_service_spec.rb @@ -6,6 +6,7 @@ RSpec.describe Issues::BuildService do let_it_be(:project) { create(:project, :repository) } let_it_be(:developer) { create(:user) } let_it_be(:guest) { create(:user) } + let(:user) { developer } before_all do diff --git a/spec/services/issues/clone_service_spec.rb b/spec/services/issues/clone_service_spec.rb index 9ceb4ffeec5..44180a322ca 100644 --- a/spec/services/issues/clone_service_spec.rb +++ b/spec/services/issues/clone_service_spec.rb @@ -242,6 +242,7 @@ RSpec.describe Issues::CloneService do context 'issue with a design', :clean_gitlab_redis_shared_state do let_it_be(:new_project) { create(:project) } + let!(:design) { create(:design, :with_lfs_file, issue: old_issue) } let!(:note) { create(:diff_note_on_design, noteable: design, issue: old_issue, project: old_issue.project) } let(:subject) { clone_service.execute(old_issue, new_project) } diff --git a/spec/services/issues/create_service_spec.rb b/spec/services/issues/create_service_spec.rb index d548e5ee74a..83c6373c335 100644 --- a/spec/services/issues/create_service_spec.rb +++ b/spec/services/issues/create_service_spec.rb @@ -3,12 +3,15 @@ require 'spec_helper' RSpec.describe Issues::CreateService do + include AfterNextHelpers + let_it_be_with_reload(:project) { create(:project) } let_it_be(:user) { create(:user) } describe '#execute' do let_it_be(:assignee) { create(:user) } let_it_be(:milestone) { create(:milestone, project: project) } + let(:issue) { described_class.new(project, user, opts).execute } context 'when params are valid' do @@ -64,7 +67,6 @@ RSpec.describe Issues::CreateService do it_behaves_like 'incident issue' it_behaves_like 'has incident label' - it_behaves_like 'an incident management tracked event', :incident_management_incident_created it 'does create an incident label' do expect { subject } @@ -112,20 +114,6 @@ RSpec.describe Issues::CreateService do end end - it 'creates a pending todo for new assignee' do - attributes = { - project: project, - author: user, - user: assignee, - target_id: issue.id, - target_type: issue.class.name, - action: Todo::ASSIGNED, - state: :pending - } - - expect(Todo.where(attributes).count).to eq 1 - end - it 'moves the issue to the end, in an asynchronous worker' do expect(IssuePlacementWorker).to receive(:perform_async).with(be_nil, Integer) @@ -279,14 +267,6 @@ RSpec.describe Issues::CreateService do end end - it 'deletes milestone issues count cache' do - expect_next_instance_of(Milestones::IssuesCountService, milestone) do |service| - expect(service).to receive(:delete_cache).and_call_original - end - - issue - end - it 'schedules a namespace onboarding create action worker' do expect(Namespaces::OnboardingIssueCreatedWorker).to receive(:perform_async).with(project.namespace.id) @@ -458,7 +438,7 @@ RSpec.describe Issues::CreateService do end context 'checking spam' do - let(:request) { double(:request) } + let(:request) { double(:request, headers: nil) } let(:api) { true } let(:captcha_response) { 'abc123' } let(:spam_log_id) { 1 } diff --git a/spec/services/issues/export_csv_service_spec.rb b/spec/services/issues/export_csv_service_spec.rb index d199f825276..d04480bec18 100644 --- a/spec/services/issues/export_csv_service_spec.rb +++ b/spec/services/issues/export_csv_service_spec.rb @@ -8,6 +8,7 @@ RSpec.describe Issues::ExportCsvService do let_it_be(:project) { create(:project, :public, group: group) } let_it_be(:issue) { create(:issue, project: project, author: user) } let_it_be(:bad_issue) { create(:issue, project: project, author: user) } + subject { described_class.new(Issue.all, project) } it 'renders csv to string' do diff --git a/spec/services/issues/move_service_spec.rb b/spec/services/issues/move_service_spec.rb index eb124f07900..2f29a2e2022 100644 --- a/spec/services/issues/move_service_spec.rb +++ b/spec/services/issues/move_service_spec.rb @@ -206,6 +206,7 @@ RSpec.describe Issues::MoveService do context 'issue with a design', :clean_gitlab_redis_shared_state do let_it_be(:new_project) { create(:project) } + let!(:design) { create(:design, :with_lfs_file, issue: old_issue) } let!(:note) { create(:diff_note_on_design, noteable: design, issue: old_issue, project: old_issue.project) } let(:subject) { move_service.execute(old_issue, new_project) } diff --git a/spec/services/issues/related_branches_service_spec.rb b/spec/services/issues/related_branches_service_spec.rb index a8a1f95e800..c9c029bca4f 100644 --- a/spec/services/issues/related_branches_service_spec.rb +++ b/spec/services/issues/related_branches_service_spec.rb @@ -5,6 +5,7 @@ require 'spec_helper' RSpec.describe Issues::RelatedBranchesService do let_it_be(:developer) { create(:user) } let_it_be(:issue) { create(:issue) } + let(:user) { developer } subject { described_class.new(issue.project, user) } |