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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-26 18:08:16 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-26 18:08:16 +0300
commite80e0dd64fbb04f60394cb1bb08e17dbcb22b8ce (patch)
tree9e538341b9b77e96737964813e10235dbecf47ff /spec/graphql
parentef31adeb0fb9a02b2c6a4529ec4e38d7082a4b2b (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/graphql')
-rw-r--r--spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb73
1 files changed, 12 insertions, 61 deletions
diff --git a/spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb b/spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb
index 75b5d31d134..145e42e2a51 100644
--- a/spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb
+++ b/spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb
@@ -3,76 +3,27 @@
require 'spec_helper'
describe Mutations::ResolvesIssuable do
- let(:mutation_class) do
+ let_it_be(:mutation_class) do
Class.new(Mutations::BaseMutation) do
include Mutations::ResolvesIssuable
end
end
- let(:project) { create(:project) }
- let(:user) { create(:user) }
- let(:context) { { current_user: user } }
- let(:mutation) { mutation_class.new(object: nil, context: context, field: nil) }
-
- shared_examples 'resolving an issuable' do |type|
- context 'when user has access' do
- let(:source) { type == :merge_request ? 'source_project' : 'project' }
- let(:issuable) { create(type, author: user, "#{source}" => project) }
-
- subject { mutation.resolve_issuable(type: type, parent_path: project.full_path, iid: issuable.iid) }
-
- before do
- project.add_developer(user)
- end
-
- it 'resolves issuable by iid' do
- result = type == :merge_request ? subject.sync : subject
- expect(result).to eq(issuable)
- end
-
- it 'uses the correct Resolver to resolve issuable' do
- resolver_class = "Resolvers::#{type.to_s.classify.pluralize}Resolver".constantize
- resolved_project = mutation.resolve_project(full_path: project.full_path)
-
- allow(mutation).to receive(:resolve_project)
- .with(full_path: project.full_path)
- .and_return(resolved_project)
-
- expect(resolver_class).to receive(:new)
- .with(object: resolved_project, context: context, field: nil)
- .and_call_original
-
- subject
- end
-
- it 'uses the ResolvesProject to resolve project' do
- expect(Resolvers::ProjectResolver).to receive(:new)
- .with(object: nil, context: context, field: nil)
- .and_call_original
-
- subject
- end
-
- it 'returns nil if issuable is not found' do
- result = mutation.resolve_issuable(type: type, parent_path: project.full_path, iid: "100")
- result = type == :merge_request ? result.sync : result
-
- expect(result).to be_nil
- end
-
- it 'returns nil if parent path is empty' do
- result = mutation.resolve_issuable(type: type, parent_path: "", iid: issuable.iid)
-
- expect(result).to be_nil
- end
- end
- end
+ let_it_be(:project) { create(:project) }
+ let_it_be(:user) { create(:user) }
+ let_it_be(:context) { { current_user: user } }
+ let_it_be(:mutation) { mutation_class.new(object: nil, context: context, field: nil) }
+ let(:parent) { issuable.project }
context 'with issues' do
- it_behaves_like 'resolving an issuable', :issue
+ let(:issuable) { create(:issue, project: project) }
+
+ it_behaves_like 'resolving an issuable in GraphQL', :issue
end
context 'with merge requests' do
- it_behaves_like 'resolving an issuable', :merge_request
+ let(:issuable) { create(:merge_request, source_project: project) }
+
+ it_behaves_like 'resolving an issuable in GraphQL', :merge_request
end
end