QuestionManagementTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace Tests\Feature\Livewire;
  3. use App\Filament\Pages\QuestionManagement;
  4. use App\Services\QuestionServiceApi;
  5. use App\Services\QuestionBankService;
  6. use App\Services\KnowledgeGraphService;
  7. use Livewire\Livewire;
  8. use Tests\TestCase;
  9. use Mockery;
  10. class QuestionManagementTest extends TestCase
  11. {
  12. protected function setUp(): void
  13. {
  14. parent::setUp();
  15. // Mock Services
  16. $this->mock(QuestionServiceApi::class, function ($mock) {
  17. $mock->shouldReceive('listQuestions')->andReturn(['data' => [], 'meta' => []]);
  18. $mock->shouldReceive('getStatistics')->andReturn(['total' => 0]);
  19. $mock->shouldReceive('getKnowledgePointOptions')->andReturn(['KP1001' => 'Test KP']);
  20. });
  21. $this->mock(KnowledgeGraphService::class, function ($mock) {
  22. $mock->shouldReceive('getSkillsByKnowledgePoint')->andReturn([]);
  23. });
  24. }
  25. public function test_component_can_render()
  26. {
  27. Livewire::test(QuestionManagement::class)
  28. ->assertStatus(200);
  29. }
  30. public function test_filters_update_properties()
  31. {
  32. Livewire::test(QuestionManagement::class)
  33. ->set('selectedKpCode', 'KP1001')
  34. ->set('selectedDifficulty', '0.5')
  35. ->set('selectedType', 'CHOICE') // New property
  36. ->assertSet('selectedKpCode', 'KP1001')
  37. ->assertSet('selectedDifficulty', '0.5')
  38. ->assertSet('selectedType', 'CHOICE');
  39. }
  40. public function test_generation_modal_properties()
  41. {
  42. Livewire::test(QuestionManagement::class)
  43. ->set('generateKpCode', 'KP1001')
  44. ->set('generateDifficulty', '0.8') // New property
  45. ->set('generateType', 'CALCULATION') // New property
  46. ->assertSet('generateKpCode', 'KP1001')
  47. ->assertSet('generateDifficulty', '0.8')
  48. ->assertSet('generateType', 'CALCULATION');
  49. }
  50. }