Level 80
@mstdmstd Just mock the policy class to return whatever result you want:
public function testCanCreateTask(): void
{
$this->mock(TaskPolicy::class, function (MockInterface $mock): void {
$mock->shouldReceive('create')->once()->andReturnTrue();
});
$this
->actingAs(static::$loggedUser, 'sanctum');
->postJson('/tasks', $taskModel->toArray())
->assertCreated();
}
public function testCannotCreateTask(): void
{
$this->mock(TaskPolicy::class, function (MockInterface $mock): void {
$mock->shouldReceive('create')->once()->andReturnFalse();
});
$this
->actingAs(static::$loggedUser, 'sanctum');
->postJson('/tasks', $taskModel->toArray())
->assertForbidden();
}
1 like