Автоматическое определение модели Lighthouse не работает с юнит-тестами - PullRequest
1 голос
/ 19 сентября 2019

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

Теперь я подозреваю, что в тестах нет пользователямодель найдена или не подходит, но я не могу понять, почему это так.

У кого-нибудь есть идеи?

...