gitlab-org--gitlab-foss/spec/support/helpers/graphql_helpers.rb

27 lines
593 B
Ruby
Raw Normal View History

2017-08-16 13:04:41 +00:00
module GraphqlHelpers
# Run a loader's named resolver
def resolve(kls, name, obj: nil, args: {}, ctx: {})
kls[name].call(obj, args, ctx)
end
# Runs a block inside a BatchLoader::Executor wrapper
2017-08-16 13:04:41 +00:00
def batch(max_queries: nil, &blk)
wrapper = proc do
begin
BatchLoader::Executor.ensure_current
blk.call
ensure
BatchLoader::Executor.clear_current
2017-08-16 13:04:41 +00:00
end
end
2017-08-16 13:04:41 +00:00
if max_queries
result = nil
expect { result = wrapper.call }.not_to exceed_query_limit(max_queries)
result
else
wrapper.call
end
end
end