Я хочу протестировать всю свою схему, тестируя каждый тип отдельно, чтобы отделить процесс тестирования и сделать его более выразительным. Макет root элемента, а затем создать экземпляр, который я хочу проверить. Примерно так:
public function testTestCarOwnerIsCorect()
{
$expected = [
'id' => '2342',
'name' => 'Alex',
'age' => 21,
];
$car = Car::query()->where('id', 22)->get()->first();
$carGraphqlType = $this->app->get(CarGraphqlType::class);
$ownerResolver = $carGraphqlType->owner;
$owner = $ownerResolver($car);
self::assertEquals($expected, $owner);
}
Если я определю решатель явно на CarGraphqlType
для "владельца подано", я могу легко получить его и разрешить поле владельца.
$carGraphqlType = $this->app->get(CarGraphqlType::class);
$ownerResolver = $carGraphqlType->owner;
$owner = $ownerResolver($car);
Есть ли способ получить преобразователь по умолчанию из поля через его экземпляр Type, если определитель не определен явно. Должен быть способ сделать это, поскольку он хорошо работает, когда я запрашиваю его через graphql
конечную точку. (хотя распознаватель для владельцев не определен на CarGraphqlType
под капотом, он каким-то образом разрешает его с помощью распознавателя по умолчанию).
query {
cars(id:3) {
id
owner{
id
name
age
}
}
}
Так что есть какой-то способ сделать это, без явного определения распознавателя для "владельца" "на CarGraphqlType
?
$carGraphqlType = $this->app->get(CarGraphqlType::class);
$ownerResolver = $carGraphqlType->owner;
$owner = $ownerResolver($car);