Commit 0f14b628 authored by Brett Walker's avatar Brett Walker

Use BatchModelLoader for parent in GroupType

parent d951f047
...@@ -8,14 +8,16 @@ module Types ...@@ -8,14 +8,16 @@ module Types
expose_permissions Types::PermissionTypes::Group 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 field :avatar_url, GraphQL::STRING_TYPE, null: true, resolve: -> (group, args, ctx) do
group.avatar_url(only_path: false) group.avatar_url(only_path: false)
end end
if ::Group.supports_nested_objects? 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 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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment