Laravel API TDD прикрепить пользователей - PullRequest
0 голосов
/ 22 февраля 2020

Я создаю API с laravel. Я хочу протестировать обновление собрания, если существуют пользователи собрания. Вот мой код контроллера:

$title=$request->input('title');
        $description=$request->input('description');
        $user_id=$request->input('user_id');
    $meeting=new MeetingResource(Meeting::findOrFail($id));
          if(!$meeting->users()->where('users.id',$user_id)->first()){
                return response()->json(['msg'=>'users not registered for meeting,update not successfull'],401);
            }
              $meeting->title=$title;
            $meeting->description=$description;
            if(!$meeting->update()){
                return response()->json(['msg'=>'Error during updating'],404);
            }
            $response=[
                'msg'=>'meeting updated successfully',
                'meeting'=>$meeting
                ];
           return response()->json($response,201);  

и вот мой тест

$meeting=new MeetingResource(factory(Meeting::class)->create());
        $user=factory(User::class)->create();
        $meeting->users()->attach($user);
        $this->assertTrue($meeting->users->contains($user));
        $meeting->load('users');
        $title="kola bola";
        $desc='lorem ipsum jipsum';
        $response=$this->patch("api/v1/meeting/{$meeting->id}",['title'=>$title,'description'=>$desc])
            ->assertStatus(201);

Я получаю 401 ошибку.

1 Ответ

0 голосов
/ 22 февраля 2020

Похоже, вы не авторизованы при вызове API, Laravel имеет помощника для авторизации пользователей в тестовом сценарии.

$response = $this->actingAs($user)
    ->patch("api/v1/meeting/{$meeting->id}",['title'=>$title,'description'=>$desc])
    ->assertStatus(201);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...