Skip to content

Commit d8cb633

Browse files
committed
fix(Boxed) use query-local batching
1 parent f585010 commit d8cb633

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

spec/graphql/execution/boxed_spec.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,20 @@ def item
1212
end
1313

1414
class SumAll
15-
ALL = []
1615
attr_reader :own_value
1716
attr_accessor :value
1817

19-
def initialize(own_value)
18+
def initialize(ctx, own_value)
2019
@own_value = own_value
21-
ALL << self
20+
@all = ctx[:__sum_all__] ||= []
21+
@all << self
2222
end
2323

2424
def value
2525
@value ||= begin
26-
total_value = ALL.map(&:own_value).reduce(&:+)
27-
ALL.each { |v| v.value = total_value}
28-
ALL.clear
26+
total_value = @all.map(&:own_value).reduce(&:+)
27+
@all.each { |v| v.value = total_value}
28+
@all.clear
2929
total_value
3030
end
3131
@value
@@ -39,7 +39,7 @@ def value
3939
end
4040
field :nestedSum, BoxedSum do
4141
argument :value, !types.Int
42-
resolve ->(o, args, c) { SumAll.new(o + args[:value]) }
42+
resolve ->(o, args, c) { SumAll.new(c, o + args[:value]) }
4343
end
4444
end
4545

@@ -54,12 +54,12 @@ def value
5454

5555
field :sum, !types.Int do
5656
argument :value, !types.Int
57-
resolve ->(o, args, c) { SumAll.new(args[:value]) }
57+
resolve ->(o, args, c) { SumAll.new(c, args[:value]) }
5858
end
5959

6060
field :nestedSum, BoxedSum do
6161
argument :value, !types.Int
62-
resolve ->(o, args, c) { SumAll.new(args[:value]) }
62+
resolve ->(o, args, c) { SumAll.new(c, args[:value]) }
6363
end
6464

6565
field :listSum, types[BoxedSum] do
@@ -155,7 +155,7 @@ class SubBox < Box; end
155155
map.set(SumAll, :value)
156156
b = Box.new(1)
157157
sub_b = SubBox.new(2)
158-
s = SumAll.new(3)
158+
s = SumAll.new({}, 3)
159159
assert_equal(:item, map.get(b))
160160
assert_equal(:item, map.get(sub_b))
161161
assert_equal(:value, map.get(s))

0 commit comments

Comments
 (0)