From bda4004a5ecc9cd147dc923202d2b10275aaea9a Mon Sep 17 00:00:00 2001 From: ydah Date: Thu, 9 Jul 2026 23:21:51 +0900 Subject: [PATCH 1/2] Fix Schema union memberships lookup --- lib/graphql/schema.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/graphql/schema.rb b/lib/graphql/schema.rb index e0d2749123..9e21a53ba1 100644 --- a/lib/graphql/schema.rb +++ b/lib/graphql/schema.rb @@ -665,8 +665,8 @@ def union_memberships(type = nil) inherited_um = find_inherited_value(:union_memberships, EMPTY_HASH).fetch(type.graphql_name, EMPTY_ARRAY) own_um + inherited_um else - joined_um = own_union_memberships.dup - find_inherited_value(:union_memberhips, EMPTY_HASH).each do |k, v| + joined_um = own_union_memberships.transform_values(&:dup) + find_inherited_value(:union_memberships, EMPTY_HASH).each do |k, v| um = joined_um[k] ||= [] um.concat(v) end From 41c390df1b5f49542143a3c0f91a30ff6e3aa31f Mon Sep 17 00:00:00 2001 From: ydah Date: Sat, 11 Jul 2026 06:55:46 +0900 Subject: [PATCH 2/2] Test inherited Schema union memberships --- spec/graphql/schema_spec.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spec/graphql/schema_spec.rb b/spec/graphql/schema_spec.rb index 3e7d318d6f..c3c090c20b 100644 --- a/spec/graphql/schema_spec.rb +++ b/spec/graphql/schema_spec.rb @@ -87,6 +87,12 @@ class CustomSubscriptions < GraphQL::Subscriptions::ActionCableSubscriptions assert_equal GraphQL::Query, schema.query_class end + it "inherits union memberships when no type is given" do + schema = Class.new(Dummy::Schema) + + assert_equal Dummy::Schema.union_memberships, schema.union_memberships + end + it "can override configuration from its superclass" do custom_query_class = Class.new(GraphQL::Query) extra_type_2 = Class.new(GraphQL::Schema::Enum)