---
source: crates/graphql-composition/tests/composition_tests.rs
expression: "A test with three extensions, used in different subgraphs with different imports. We expect to see the `extension__Link` enum and `extension__directive` instances in the right places.\n\nAlso note we have a facebook linked schema, that should not appear in the federated graph."
input_file: crates/graphql-composition/tests/composition/grafbase_extensions/extensions_basic/test.md
---
enum AppointmentStatus {
SCHEDULED
COMPLETED
CANCELLED
}
enum DoctorType {
CARDIOLOGIST
PEDIATRICIAN
SURGEON
}
type Appointment {
datetime: String!
doctor: Doctor!
id: ID!
notes: String
patient: Patient!
status: AppointmentStatus!
}
type Patient {
appointments: [Appointment!]!
dateOfBirth: String!
email: String!
firstName: String!
id: ID!
lastName: String!
phone: String
}
type Doctor {
appointments: [Appointment!]!
email: String!
firstName: String!
id: ID!
lastName: String!
phone: String
specialty: String!
type: DoctorType
}
type Query {
appointment(id: ID!): Appointment
appointments: [Appointment!]!
doctor(id: ID!): Doctor
doctors: [Doctor!]!
patient(id: ID!): Patient
patients: [Patient!]!
}
type Mutation {
cancelAppointment(id: ID!): Boolean!
createDoctor(input: DoctorInput!): Doctor!
createPatient(input: PatientInput!): Patient!
scheduleAppointment(input: AppointmentInput!): Appointment!
updateDoctor(id: ID!, input: DoctorInput!): Doctor!
updatePatient(id: ID!, input: PatientInput!): Patient!
}
type Subscription {
newAppointments(doctorId: ID!): Appointment!
}
input AppointmentInput {
doctorId: ID!
datetime: String!
notes: String
patientId: ID!
}
input DoctorInput {
firstName: String!
lastName: String!
specialty: String!
email: String!
phone: String
}
input PatientInput {
firstName: String!
lastName: String!
email: String!
phone: String
dateOfBirth: String!
}