Мне кажется, что я сталкиваюсь с общей проблемой, заключающейся в том, что управляемые директивами мутации не будут работать должным образом при их модульном тестировании.При использовании GraphQL Playground все работает как положено, и модель User определяется автоматически.Но если модульное тестирование той же функциональности завершается ошибкой.
Все значения конфигурации установлены правильно (как я могу видеть из регулярных запросов без сбоев):
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => ClientName\PackageName\Models\User::class,
],
...
]
И значения конфигурации маяка также установлены напространство имен выше!
Так, например, эта мутация вызовет класс UserPolicy
и после этого автоматически вызовет метод создания класса User
:
type Mutation @protect(guards: ["api"]) {
"Create user"
createUser(data: NewUserInput! @spread): User
@can(ability: "create")
@create
}
Но вызовет то же самоезапрос через phpunit может привести к ошибкам: для @can
он возвращает ошибку не авторизованный , а если я удаляю @can
, он только обновляет поле электронной почты пользовательской модели, как если бы массовое назначение не было правильно установлено.
Когда я теперь изменяю приведенное выше определение схемы на:
type Mutation @protect(guards: ["api"]) {
"Create user"
createUser(data: NewUserInput! @spread): User
@can(ability: "create" model: "ClientName\\PackageName\\Models\\User")
@create(model: "ClientName\\PackageName\\Models\\User")
}
И оно работает как положено в тестах phpunit!
Теперь я подозреваю, что в тестах нет пользователямодель найдена или не подходит, но я не могу понять, почему это так.
У кого-нибудь есть идеи?