AdminSettingsControllerTest.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace Tests\Feature;
  3. use App\Models\Role;
  4. use App\Models\Setting;
  5. use App\Models\User;
  6. use Illuminate\Foundation\Testing\RefreshDatabase;
  7. use Tests\TestCase;
  8. class AdminSettingsControllerTest extends TestCase
  9. {
  10. use RefreshDatabase;
  11. protected $seed = true;
  12. private User $adminUser;
  13. private User $managerUser;
  14. protected function setUp(): void
  15. {
  16. parent::setUp();
  17. $this->adminUser = User::factory()->create(['role' => Role::ADMIN]);
  18. $this->managerUser = User::factory()->create(['role' => Role::MANAGER]);
  19. }
  20. public function test_admin_can_store_ttn_next_number_setting(): void
  21. {
  22. $response = $this->actingAs($this->adminUser)
  23. ->post(route('admin.settings.store'), [
  24. 'default_maf_order_user_id' => null,
  25. 'reclamation_act_representative_user_id' => null,
  26. 'ttn_next_number' => 25,
  27. ]);
  28. $response->assertRedirect();
  29. $response->assertSessionHas('success');
  30. $this->assertSame(25, Setting::getInt(Setting::KEY_TTN_NEXT_NUMBER));
  31. }
  32. public function test_manager_cannot_store_admin_settings(): void
  33. {
  34. $response = $this->actingAs($this->managerUser)
  35. ->post(route('admin.settings.store'), [
  36. 'ttn_next_number' => 25,
  37. ]);
  38. $response->assertStatus(403);
  39. }
  40. }