feat : Ajout du système de RTT sur la page employé avec le repport annuel des heures
All checks were successful
Auto Tag Develop / tag (push) Successful in 6s

This commit is contained in:
2026-03-13 10:26:33 +01:00
parent 1858817649
commit 4a2c3a8eed
29 changed files with 1595 additions and 391 deletions

View File

@@ -128,6 +128,40 @@ final class SuspensionDaysCalculatorTest extends TestCase
self::assertSame(5, $result);
}
public function testFirstMonthGraceShiftsStartByOneMonth(): void
{
$calc = new SuspensionDaysCalculator();
$suspension = $this->buildSuspension('2026-03-15', '2026-06-30');
$result = $calc->applyFirstMonthGrace([$suspension]);
self::assertCount(1, $result);
self::assertEquals(new DateTimeImmutable('2026-04-15'), $result[0]->getStartDate());
self::assertEquals(new DateTimeImmutable('2026-06-30'), $result[0]->getEndDate());
}
public function testFirstMonthGraceRemovesSuspensionShorterThanOneMonth(): void
{
$calc = new SuspensionDaysCalculator();
$suspension = $this->buildSuspension('2026-03-10', '2026-03-25');
$result = $calc->applyFirstMonthGrace([$suspension]);
self::assertCount(0, $result);
}
public function testFirstMonthGraceOpenEndedSuspension(): void
{
$calc = new SuspensionDaysCalculator();
$suspension = $this->buildSuspension('2026-03-01', null);
$result = $calc->applyFirstMonthGrace([$suspension]);
self::assertCount(1, $result);
self::assertEquals(new DateTimeImmutable('2026-04-01'), $result[0]->getStartDate());
self::assertNull($result[0]->getEndDate());
}
private function buildSuspension(string $start, ?string $end): ContractSuspension
{
$s = new ContractSuspension();