Skip to content

Commit 62e3a7a

Browse files
authored
Merge pull request #4419 from rmosolgo/appsignal-trace-resolve-type-fix
Fix resolve_type instrumentation for resolve_type
2 parents 7c510a1 + 26f3e49 commit 62e3a7a

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

lib/graphql/tracing/appsignal_trace.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ def platform_authorized(platform_key)
5555
end
5656
end
5757
58+
def platform_resolve_type(platform_key)
59+
Appsignal.instrument(platform_key) do
60+
yield
61+
end
62+
end
63+
5864
def platform_field_key(field)
5965
"#{field.owner.graphql_name}.#{field.graphql_name}.graphql"
6066
end

spec/graphql/tracing/appsignal_trace_spec.rb

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ class Thing < GraphQL::Schema::Object
2323
def str; "blah"; end
2424
end
2525

26+
class Named < GraphQL::Schema::Union
27+
possible_types Thing
28+
def self.resolve_type(obj, ctx)
29+
Thing
30+
end
31+
end
32+
2633
class Query < GraphQL::Schema::Object
2734
include GraphQL::Types::Relay::HasNodeField
2835

@@ -34,6 +41,8 @@ def int
3441

3542
field :thing, Thing
3643
def thing; :thing; end
44+
45+
field :named, Named, resolver_method: :thing
3746
end
3847

3948
class TestSchema < GraphQL::Schema
@@ -47,7 +56,7 @@ class TestSchema < GraphQL::Schema
4756
end
4857

4958
it "traces events" do
50-
_res = AppsignalTraceTest::TestSchema.execute("{ int thing { str } }")
59+
_res = AppsignalTraceTest::TestSchema.execute("{ int thing { str } named { ... on Thing { str } } }")
5160
expected_trace = [
5261
"execute.graphql",
5362
"analyze.graphql",
@@ -59,7 +68,10 @@ class TestSchema < GraphQL::Schema
5968
"Query.authorized.graphql",
6069
"Query.thing.graphql",
6170
"Thing.authorized.graphql",
62-
"execute.graphql"
71+
"Query.named.graphql",
72+
"Named.resolve_type.graphql",
73+
"Thing.authorized.graphql",
74+
"execute.graphql",
6375
]
6476
assert_equal expected_trace, Appsignal.instrumented
6577
end

0 commit comments

Comments
 (0)