add controllers, servoices

This commit is contained in:
root
2026-03-09 02:52:13 -04:00
parent c8de5f7edc
commit d76c871cb7
501 changed files with 34439 additions and 21843 deletions
@@ -0,0 +1,46 @@
<?php
namespace Tests\Unit\Services\Semesters;
use App\Services\SemesterRangeService;
use App\Services\Semesters\SemesterConfigService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\DB;
use Tests\TestCase;
class SemesterRangeServiceTest extends TestCase
{
use RefreshDatabase;
public function test_get_school_year_range_falls_back_when_config_missing(): void
{
$service = new SemesterRangeService(new SemesterConfigService());
[$start, $end] = $service->getSchoolYearRange('2025-2026');
$this->assertSame('2025-09-01', $start);
$this->assertSame('2026-06-30', $end);
}
public function test_get_semester_for_date_uses_config_dates(): void
{
DB::table('configuration')->insert([
['id' => 1, 'config_key' => 'fall_semester_start', 'config_value' => '2025-09-01'],
['id' => 2, 'config_key' => 'spring_semester_start', 'config_value' => '2026-01-20'],
['id' => 3, 'config_key' => 'last_school_day', 'config_value' => '2026-06-01'],
]);
$service = new SemesterRangeService(new SemesterConfigService());
$semester = $service->getSemesterForDate('2025-10-01');
$this->assertSame('Fall', $semester);
}
public function test_normalize_semester(): void
{
$service = new SemesterRangeService(new SemesterConfigService());
$this->assertSame('Fall', $service->normalizeSemester('fall'));
$this->assertSame('Spring', $service->normalizeSemester('SPRING'));
$this->assertSame('', $service->normalizeSemester('winter'));
}
}