Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/graphql/mutations/issues')
-rw-r--r--spec/graphql/mutations/issues/create_spec.rb13
-rw-r--r--spec/graphql/mutations/issues/set_due_date_spec.rb19
-rw-r--r--spec/graphql/mutations/issues/update_spec.rb38
3 files changed, 57 insertions, 13 deletions
diff --git a/spec/graphql/mutations/issues/create_spec.rb b/spec/graphql/mutations/issues/create_spec.rb
index 422ad40a9cb..b32f0991959 100644
--- a/spec/graphql/mutations/issues/create_spec.rb
+++ b/spec/graphql/mutations/issues/create_spec.rb
@@ -19,7 +19,8 @@ RSpec.describe Mutations::Issues::Create do
description: 'new description',
confidential: true,
due_date: Date.tomorrow,
- discussion_locked: true
+ discussion_locked: true,
+ issue_type: 'issue'
}
end
@@ -93,6 +94,16 @@ RSpec.describe Mutations::Issues::Create do
expect(mutated_issue.iid).not_to eq(special_params[:iid])
end
end
+
+ context 'when creating a non-default issue type' do
+ before do
+ mutation_params[:issue_type] = 'incident'
+ end
+
+ it 'creates issue with correct values' do
+ expect(mutated_issue.issue_type).to eq('incident')
+ end
+ end
end
context 'when creating an issue as owner' do
diff --git a/spec/graphql/mutations/issues/set_due_date_spec.rb b/spec/graphql/mutations/issues/set_due_date_spec.rb
index 9f8d0d6c405..263122e5d5f 100644
--- a/spec/graphql/mutations/issues/set_due_date_spec.rb
+++ b/spec/graphql/mutations/issues/set_due_date_spec.rb
@@ -3,8 +3,9 @@
require 'spec_helper'
RSpec.describe Mutations::Issues::SetDueDate do
- let(:issue) { create(:issue) }
- let(:user) { create(:user) }
+ let(:issue) { create(:issue, due_date: '2021-05-01') }
+
+ let_it_be(:user) { create(:user) }
subject(:mutation) { described_class.new(object: nil, context: { current_user: user }, field: nil) }
@@ -23,17 +24,25 @@ RSpec.describe Mutations::Issues::SetDueDate do
issue.project.add_developer(user)
end
- it 'returns the issue with updated due date' do
+ it 'returns the issue with updated due date', :aggregate_failures do
expect(mutated_issue).to eq(issue)
expect(mutated_issue.due_date).to eq(Date.today + 2.days)
expect(subject[:errors]).to be_empty
end
+ context 'when due date is nil' do
+ let(:due_date) { nil }
+
+ it 'updates due date to be nil' do
+ expect(mutated_issue.due_date).to be nil
+ end
+ end
+
context 'when passing incorrect due date value' do
let(:due_date) { 'test' }
- it 'does not update due date' do
- expect(mutated_issue.due_date).to eq(issue.due_date)
+ it 'updates due date to be nil' do
+ expect(mutated_issue.due_date).to be nil
end
end
end
diff --git a/spec/graphql/mutations/issues/update_spec.rb b/spec/graphql/mutations/issues/update_spec.rb
index f10e257e153..6d6a5b94219 100644
--- a/spec/graphql/mutations/issues/update_spec.rb
+++ b/spec/graphql/mutations/issues/update_spec.rb
@@ -69,17 +69,33 @@ RSpec.describe Mutations::Issues::Update do
context 'when changing state' do
let_it_be_with_refind(:issue) { create(:issue, project: project, state: :opened) }
- it 'closes issue' do
- mutation_params[:state_event] = 'close'
+ before do
+ mutation_params[:state_event] = state_event
+ end
+
+ context 'when state_event is close' do
+ let_it_be(:removable_label) { create(:label, project: project, remove_on_close: true, issues: [issue]) }
- expect { subject }.to change { issue.reload.state }.from('opened').to('closed')
+ let(:state_event) { 'close' }
+
+ it 'closes issue' do
+ expect do
+ subject
+ issue.reload
+ end.to change(issue, :state).from('opened').to('closed').and(
+ change { issue.label_ids }.from([removable_label.id]).to([])
+ )
+ end
end
- it 'reopens issue' do
- issue.close
- mutation_params[:state_event] = 'reopen'
+ context 'when state_event is reopen' do
+ let(:state_event) { 'reopen' }
+
+ it 'reopens issue' do
+ issue.close
- expect { subject }.to change { issue.reload.state }.from('closed').to('opened')
+ expect { subject }.to change { issue.reload.state }.from('closed').to('opened')
+ end
end
end
@@ -128,6 +144,14 @@ RSpec.describe Mutations::Issues::Update do
expect(issue.reload.labels).to match_array([project_label, label_2])
end
end
+
+ context 'when changing type' do
+ it 'changes the type of the issue' do
+ mutation_params[:issue_type] = 'incident'
+
+ expect { subject }.to change { issue.reload.issue_type }.from('issue').to('incident')
+ end
+ end
end
end
end