lundi 26 septembre 2016

Laravel & phpunit set expected http error code

I'm writing some tests. Here is my test:

  /** @test */
  public function a_normal_user_cannot_access_the_admin_panel()
  {
    // Note: This is a regular user, not an admin
    $user = factory(User::class)->create();
    $this->actingAs($user);
    $this->visit('/admin');

    // ????
  }

In my MustBeAdministrator.php middleware:

  public function handle($request, Closure $next)
  {
      $user = $request->user();

      if ($user && $user->isAdmin) {
        return $next($request);
      }

      abort(403);
  }

When i visit /admin, the middleware aborts with a 403 error. How can i assert with phpunit that an http error was thrown? I know about $this->setExpectedException(), but i can't get it to work with http error. Am i doing this wrong?

NOTE: I'm very new to phpunit and also exceptions, so sorry if this is a stupid question. Here is the repo for this project if you need any other files, or you can just ask.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire