Skip to content
Snippets Groups Projects
Commit 0f14b628 authored by Brett Walker's avatar Brett Walker
Browse files

Use BatchModelLoader for parent in GroupType

parent d951f047
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -8,14 +8,16 @@ module Types
 
expose_permissions Types::PermissionTypes::Group
 
field :web_url, GraphQL::STRING_TYPE, null: true
field :web_url, GraphQL::STRING_TYPE, null: false
 
field :avatar_url, GraphQL::STRING_TYPE, null: true, resolve: -> (group, args, ctx) do
group.avatar_url(only_path: false)
end
 
if ::Group.supports_nested_objects?
field :parent, GroupType, null: true
field :parent, GroupType,
null: true,
resolve: -> (obj, _args, _ctx) { Gitlab::Graphql::Loaders::BatchModelLoader.new(Group, obj.parent_id).find }
end
end
end
# frozen_string_literal: true
require 'spec_helper'
describe Resolvers::GroupResolver do
include GraphqlHelpers
set(:group1) { create(:group) }
set(:group2) { create(:group) }
describe '#resolve' do
it 'batch-resolves groups by full path' do
paths = [group1.full_path, group2.full_path]
result = batch(max_queries: 1) do
paths.map { |path| resolve_group(path) }
end
expect(result).to contain_exactly(group1, group2)
end
it 'resolves an unknown full_path to nil' do
result = batch { resolve_group('unknown/project') }
expect(result).to be_nil
end
end
def resolve_group(full_path)
resolve(described_class, args: { full_path: full_path })
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment