|
| 1 | +# frozen_string_literal: true |
| 2 | +require "spec_helper" |
| 3 | + |
| 4 | +describe GraphQL::Schema::Member::RelayShortcuts do |
| 5 | + describe ".connection_type_class, .edge_type_class" do |
| 6 | + class CustomBaseConnectionType < GraphQL::Types::Relay::BaseConnection |
| 7 | + end |
| 8 | + |
| 9 | + class CustomEdgeType < GraphQL::Types::Relay::BaseEdge |
| 10 | + end |
| 11 | + |
| 12 | + class ConnectionTypeBaseObject < GraphQL::Schema::Object |
| 13 | + connection_type_class CustomBaseConnectionType |
| 14 | + edge_type_class CustomEdgeType |
| 15 | + end |
| 16 | + |
| 17 | + class ImplementationTypeObject < ConnectionTypeBaseObject |
| 18 | + implements GraphQL::Types::Relay::Node |
| 19 | + end |
| 20 | + |
| 21 | + module ConnectionTypeBaseInterface |
| 22 | + include GraphQL::Schema::Interface |
| 23 | + connection_type_class CustomBaseConnectionType |
| 24 | + edge_type_class CustomEdgeType |
| 25 | + end |
| 26 | + |
| 27 | + module NodeImplementingInterface |
| 28 | + include ConnectionTypeBaseInterface |
| 29 | + implements GraphQL::Types::Relay::Node |
| 30 | + end |
| 31 | + |
| 32 | + it "uses the custom class, even when Node is implemented" do |
| 33 | + assert_equal CustomBaseConnectionType, ConnectionTypeBaseObject.connection_type_class |
| 34 | + assert_equal GraphQL::Types::Relay::BaseConnection, GraphQL::Types::Relay::Node.connection_type_class |
| 35 | + assert_equal CustomBaseConnectionType, ImplementationTypeObject.connection_type_class |
| 36 | + assert_equal CustomBaseConnectionType, ConnectionTypeBaseInterface.connection_type_class |
| 37 | + assert_equal CustomBaseConnectionType, NodeImplementingInterface.connection_type_class |
| 38 | + |
| 39 | + assert_equal CustomEdgeType, ConnectionTypeBaseObject.edge_type_class |
| 40 | + assert_equal GraphQL::Types::Relay::BaseEdge, GraphQL::Types::Relay::Node.edge_type_class |
| 41 | + assert_equal CustomEdgeType, ImplementationTypeObject.edge_type_class |
| 42 | + assert_equal CustomEdgeType, ConnectionTypeBaseInterface.edge_type_class |
| 43 | + assert_equal CustomEdgeType, NodeImplementingInterface.edge_type_class |
| 44 | + |
| 45 | + end |
| 46 | + end |
| 47 | +end |
0 commit comments