Skip to content

Commit 8cb72a4

Browse files
committed
Fix PerfettoTrace to handle hashes with Symbol keys
1 parent 1be087b commit 8cb72a4

6 files changed

Lines changed: 32327 additions & 31087 deletions

File tree

lib/graphql/tracing/perfetto_trace.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,19 @@ def payload_to_debug(k, v, iid: nil, intern_value: false)
634634
when Array
635635
debug_annotation(iid, :array_values, v.each_with_index.map { |v2, idx| payload_to_debug((k ? "#{k}.#{idx}" : String(idx)), v2, intern_value: intern_value) }.compact)
636636
when Hash
637-
debug_annotation(iid, :dict_entries, v.map { |k2, v2| payload_to_debug(k2, v2, intern_value: intern_value) }.compact)
637+
debug_v = v.map { |k2, v2|
638+
debug_k = case k2
639+
when String
640+
k2
641+
when Symbol
642+
k2.name
643+
else
644+
String(k2)
645+
end
646+
payload_to_debug(debug_k, v2, intern_value: intern_value)
647+
}
648+
debug_v.compact!
649+
debug_annotation(iid, :dict_entries, debug_v)
638650
else
639651
class_name_iid = @interned_da_string_values[v.class.name]
640652
da = [

spec/graphql/tracing/perfetto_trace_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def self.authorized?(obj, ctx)
4646
end
4747

4848
def user
49-
dataload_record(::User, object.user_id)
49+
dataload_record(::User, object[:user_id])
5050
end
5151
end
5252

@@ -57,7 +57,7 @@ class Book < BaseObject
5757
field :author, "PerfettoSchema::Author"
5858
field :other_book, Book
5959
def reviews
60-
object.reviews.limit(2)
60+
object.reviews.limit(2).map { |r| { stars: r.stars, user_id: r.user } }
6161
end
6262

6363
def average_review

0 commit comments

Comments
 (0)