Заголовок запроса не установлен в тесте - PullRequest
0 голосов
/ 27 марта 2020

У меня есть тест, который пытается войти и получить детали. Мне нужно передать токен на предъявителя в заголовке запроса для этой операции. Пожалуйста, смотрите код ниже. Я мог видеть, что заголовок редко имеет заголовки, которые я установил. Может кто-нибудь дать мне указатель, чтобы решить эту проблему?

Я использую Laravel 7.2.2, PHP 7.4,

И я бегу php Ремесленник тест

Код:

public function a_user_can_get_details()
    {
        $this->create_user();

        $response = $this->json('POST', 
                    '/api/login', 
                    [
                        "email" => "john.doe@example.com",
                        "password" => "john123"
                    ]);
        $response->assertSuccessful();

        $token = Str::replaceLast('"', '', Str::replaceFirst('"', '', $response->getContent()));
        $headers = [
                        'Accept' => 'application/json',
                        'Content-Type' => 'application/json',
                        'Authorization' => 'Bearer ' . $token
                    ];


        $response = $this->withHeaders($headers)
                        ->get('api/user');

        $response->assertSuccessful();
        $this->assertCount(1, User::all());

    }

И вот ошибка, которую я получаю. На самом деле, тест должен пройти. Это правильное имя пользователя и пароль:

Response status code [403] is not a successful status code. Failed asserting that false is true.

  at tests/Feature/UserTest.php:141
    137|
    138|         $response = $this->withHeaders($headers)
    139|                         ->get('api/user');
    140|
  > 141|         $response->assertSuccessful();
    142|         $this->assertCount(1, User::all());
    143|
    144|     }
    145|

1 Ответ

0 голосов
/ 28 марта 2020

Я решил эту проблему.

Причина: Я добавил промежуточное программное обеспечение в Spat ie Разрешения, чтобы проверить разрешение для этого указанного c маршрута. Мне пришлось удалить это, чтобы заставить это работать.

Вместо этого я теперь проверяю статус пользователя, вошедшего в систему. Чтобы можно было проложить маршрут и провести необходимые проверки внутри маршрута.

Спасибо всем за вопросы / комментарии, которые помогли мне решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...