Тестовые резолверы graphql ребинг / graphql, webonyx graphql php graphql - PullRequest
0 голосов
/ 14 января 2020

Я хочу протестировать всю свою схему, тестируя каждый тип отдельно, чтобы отделить процесс тестирования и сделать его более выразительным. Макет 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...