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
All checks were successful
Auto Tag Develop / tag (push) Successful in 6s
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user