From a6c2be7cd20a9515b347e72d63c5b47bb9b79457 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 21 Feb 2020 21:08:57 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- spec/graphql/mutations/issues/update_spec.rb | 53 ++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 spec/graphql/mutations/issues/update_spec.rb (limited to 'spec/graphql/mutations') diff --git a/spec/graphql/mutations/issues/update_spec.rb b/spec/graphql/mutations/issues/update_spec.rb new file mode 100644 index 00000000000..3d671680ccf --- /dev/null +++ b/spec/graphql/mutations/issues/update_spec.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Mutations::Issues::Update do + let(:issue) { create(:issue) } + let(:user) { create(:user) } + let(:expected_attributes) do + { + title: 'new title', + description: 'new description', + confidential: true, + due_date: Date.tomorrow + } + end + let(:mutation) { described_class.new(object: nil, context: { current_user: user }) } + let(:mutated_issue) { subject[:issue] } + + describe '#resolve' do + let(:mutation_params) do + { + project_path: issue.project.full_path, + iid: issue.iid + }.merge(expected_attributes) + end + + subject { mutation.resolve(mutation_params) } + + it 'raises an error if the resource is not accessible to the user' do + expect { subject }.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable) + end + + context 'when the user can update the issue' do + before do + issue.project.add_developer(user) + end + + it 'updates issue with correct values' do + subject + + expect(issue.reload).to have_attributes(expected_attributes) + end + + context 'when iid does not exist' do + it 'raises resource not available error' do + mutation_params[:iid] = 99999 + + expect { subject }.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable) + end + end + end + end +end -- cgit v1.2.3