i'm trying to perform a test to check if
1 - the user is authenticated
2 - has permission to view the requested page
every time i run the test i get this error
Expected status code 200 but received 302.
namespace Tests\Feature\Category;
class CategoryTest extends TestCase
{
use RefreshDatabase;
/** @test */
public function it_can_see_all_categories()
{
$user = $this->signedIn();
$permission = Permission::create(['group' => 'categories' , 'name' => 'view categories' , 'label' => 'view categories']);
$role = Role::find($user->role_id);
$role->givePermissionTo($permission);
$response = $this->get('/categories');
$response->assertStatus(200 , $response->getStatusCode());
}
}
My Controller
<?php
namespace App\Http\Controllers\Category;
class CategoriesController extends Controller
{
protected $categRepo;
/**
* Initializing Categories Repository
*/
public function __construct(CategoryRepository $categRepo)
{
$this->categRepo = $categRepo;
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(ManageCategoryRequest $request)
{
$categories = $this->categRepo->getPaginated(25);
return view('categories.index' , compact('categories'));
}
}
And here is My Request For Request Authorization
<?php
class ManageCategoryRequest extends FormRequest
{
public function authorize()
{
return $this->user()->can('view categories');
}
}