finishes 13 and 14

This commit is contained in:
2026-02-03 20:18:08 +01:00
parent c693cde038
commit baa43de4e1
47 changed files with 3522 additions and 21 deletions

View File

@@ -0,0 +1,326 @@
<?php
declare(strict_types=1);
namespace Tests\Feature;
use App\Models\Answer;
use App\Models\Category;
use App\Models\Log;
use App\Models\Question;
use App\Models\QuestionGroup;
use App\Models\Screening;
use App\Models\Session;
use App\Models\User;
use App\Policies\AnswerPolicy;
use App\Policies\CategoryPolicy;
use App\Policies\LogPolicy;
use App\Policies\QuestionGroupPolicy;
use App\Policies\QuestionPolicy;
use App\Policies\ScreeningPolicy;
use App\Policies\SessionPolicy;
use Tests\TestCase;
class PolicyTest extends TestCase
{
public function test_category_policy_allows_view_any(): void
{
$user = User::factory()->create();
$policy = new CategoryPolicy;
$this->assertTrue($policy->viewAny($user));
}
public function test_category_policy_allows_view(): void
{
$user = User::factory()->create();
$category = Category::factory()->create();
$policy = new CategoryPolicy;
$this->assertTrue($policy->view($user, $category));
}
public function test_category_policy_denies_create(): void
{
$user = User::factory()->create();
$policy = new CategoryPolicy;
$this->assertFalse($policy->create($user));
}
public function test_category_policy_denies_update(): void
{
$user = User::factory()->create();
$category = Category::factory()->create();
$policy = new CategoryPolicy;
$this->assertFalse($policy->update($user, $category));
}
public function test_category_policy_denies_delete(): void
{
$user = User::factory()->create();
$category = Category::factory()->create();
$policy = new CategoryPolicy;
$this->assertFalse($policy->delete($user, $category));
}
public function test_question_group_policy_allows_view_any(): void
{
$user = User::factory()->create();
$policy = new QuestionGroupPolicy;
$this->assertTrue($policy->viewAny($user));
}
public function test_question_group_policy_allows_view(): void
{
$user = User::factory()->create();
$questionGroup = QuestionGroup::factory()->create();
$policy = new QuestionGroupPolicy;
$this->assertTrue($policy->view($user, $questionGroup));
}
public function test_question_group_policy_denies_create(): void
{
$user = User::factory()->create();
$policy = new QuestionGroupPolicy;
$this->assertFalse($policy->create($user));
}
public function test_question_group_policy_denies_update(): void
{
$user = User::factory()->create();
$questionGroup = QuestionGroup::factory()->create();
$policy = new QuestionGroupPolicy;
$this->assertFalse($policy->update($user, $questionGroup));
}
public function test_question_group_policy_denies_delete(): void
{
$user = User::factory()->create();
$questionGroup = QuestionGroup::factory()->create();
$policy = new QuestionGroupPolicy;
$this->assertFalse($policy->delete($user, $questionGroup));
}
public function test_question_policy_allows_view_any(): void
{
$user = User::factory()->create();
$policy = new QuestionPolicy;
$this->assertTrue($policy->viewAny($user));
}
public function test_question_policy_allows_view(): void
{
$user = User::factory()->create();
$question = Question::factory()->create();
$policy = new QuestionPolicy;
$this->assertTrue($policy->view($user, $question));
}
public function test_question_policy_denies_create(): void
{
$user = User::factory()->create();
$policy = new QuestionPolicy;
$this->assertFalse($policy->create($user));
}
public function test_question_policy_allows_update(): void
{
$user = User::factory()->create();
$question = Question::factory()->create();
$policy = new QuestionPolicy;
$this->assertTrue($policy->update($user, $question));
}
public function test_question_policy_denies_delete(): void
{
$user = User::factory()->create();
$question = Question::factory()->create();
$policy = new QuestionPolicy;
$this->assertFalse($policy->delete($user, $question));
}
public function test_screening_policy_allows_view_any(): void
{
$user = User::factory()->create();
$policy = new ScreeningPolicy;
$this->assertTrue($policy->viewAny($user));
}
public function test_screening_policy_allows_view(): void
{
$user = User::factory()->create();
$screening = Screening::factory()->create();
$policy = new ScreeningPolicy;
$this->assertTrue($policy->view($user, $screening));
}
public function test_screening_policy_denies_create(): void
{
$user = User::factory()->create();
$policy = new ScreeningPolicy;
$this->assertFalse($policy->create($user));
}
public function test_screening_policy_denies_update(): void
{
$user = User::factory()->create();
$screening = Screening::factory()->create();
$policy = new ScreeningPolicy;
$this->assertFalse($policy->update($user, $screening));
}
public function test_screening_policy_denies_delete(): void
{
$user = User::factory()->create();
$screening = Screening::factory()->create();
$policy = new ScreeningPolicy;
$this->assertFalse($policy->delete($user, $screening));
}
public function test_session_policy_allows_view_any(): void
{
$user = User::factory()->create();
$policy = new SessionPolicy;
$this->assertTrue($policy->viewAny($user));
}
public function test_session_policy_allows_view(): void
{
$user = User::factory()->create();
$session = Session::factory()->create();
$policy = new SessionPolicy;
$this->assertTrue($policy->view($user, $session));
}
public function test_session_policy_denies_create(): void
{
$user = User::factory()->create();
$policy = new SessionPolicy;
$this->assertFalse($policy->create($user));
}
public function test_session_policy_denies_update(): void
{
$user = User::factory()->create();
$session = Session::factory()->create();
$policy = new SessionPolicy;
$this->assertFalse($policy->update($user, $session));
}
public function test_session_policy_denies_delete(): void
{
$user = User::factory()->create();
$session = Session::factory()->create();
$policy = new SessionPolicy;
$this->assertFalse($policy->delete($user, $session));
}
public function test_answer_policy_allows_view_any(): void
{
$user = User::factory()->create();
$policy = new AnswerPolicy;
$this->assertTrue($policy->viewAny($user));
}
public function test_answer_policy_allows_view(): void
{
$user = User::factory()->create();
$answer = Answer::factory()->create();
$policy = new AnswerPolicy;
$this->assertTrue($policy->view($user, $answer));
}
public function test_answer_policy_denies_create(): void
{
$user = User::factory()->create();
$policy = new AnswerPolicy;
$this->assertFalse($policy->create($user));
}
public function test_answer_policy_denies_update(): void
{
$user = User::factory()->create();
$answer = Answer::factory()->create();
$policy = new AnswerPolicy;
$this->assertFalse($policy->update($user, $answer));
}
public function test_answer_policy_denies_delete(): void
{
$user = User::factory()->create();
$answer = Answer::factory()->create();
$policy = new AnswerPolicy;
$this->assertFalse($policy->delete($user, $answer));
}
public function test_log_policy_allows_view_any(): void
{
$user = User::factory()->create();
$policy = new LogPolicy;
$this->assertTrue($policy->viewAny($user));
}
public function test_log_policy_allows_view(): void
{
$user = User::factory()->create();
$log = Log::factory()->create();
$policy = new LogPolicy;
$this->assertTrue($policy->view($user, $log));
}
public function test_log_policy_denies_create(): void
{
$user = User::factory()->create();
$policy = new LogPolicy;
$this->assertFalse($policy->create($user));
}
public function test_log_policy_denies_update(): void
{
$user = User::factory()->create();
$log = Log::factory()->create();
$policy = new LogPolicy;
$this->assertFalse($policy->update($user, $log));
}
public function test_log_policy_denies_delete(): void
{
$user = User::factory()->create();
$log = Log::factory()->create();
$policy = new LogPolicy;
$this->assertFalse($policy->delete($user, $log));
}
}