1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
import textwrap
import strawberry
def test_interface_object():
@strawberry.federation.interface_object(keys=["id"])
class SomeInterface:
id: strawberry.ID
schema = strawberry.federation.Schema(types=[SomeInterface])
expected = """
schema @link(url: "https://specs.apollo.dev/federation/v2.11", import: ["@interfaceObject", "@key"]) {
query: Query
}
type Query {
_entities(representations: [_Any!]!): [_Entity]!
_service: _Service!
}
type SomeInterface @key(fields: "id") @interfaceObject {
id: ID!
}
scalar _Any
union _Entity = SomeInterface
type _Service {
sdl: String!
}
"""
assert schema.as_str() == textwrap.dedent(expected).strip()
|