feat: apply season task deadlines to all open checklist entries
This commit is contained in:
1 parent
3fe510e64e
commit
300bb2058f
5 files changed
+81
-1
No files matched your search
@@ -6,6 +6,7 @@ namespace App\Tests\Entity;
|
||||
|
||||
use App\Entity\JobProfile;
|
||||
use App\Entity\SeasonAssignment;
|
||||
use App\Entity\SeasonAssignmentTask;
|
||||
use App\Entity\Teamer;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
@@ -100,4 +101,43 @@ class SeasonAssignmentTest extends TestCase
|
||||
$this->assertSame('2027-04-30', $seasonAssignment->getDateTo()->format('Y-m-d'));
|
||||
$this->assertSame('AGR', $seasonAssignment->getHotelCode());
|
||||
}
|
||||
|
||||
public function testApplyingDeadlinesCopiesBothOverridesOntoOpenEntriesOnly(): void
|
||||
{
|
||||
$seasonAssignment = new SeasonAssignment();
|
||||
$source = (new SeasonAssignmentTask())
|
||||
->setDeadlineOverride1(new \DateTimeImmutable('2026-11-15'))
|
||||
->setDeadlineOverride2(new \DateTimeImmutable('2026-11-30'));
|
||||
$open = new SeasonAssignmentTask();
|
||||
$done = (new SeasonAssignmentTask())
|
||||
->setDone(true)
|
||||
->setDeadlineOverride1(new \DateTimeImmutable('2026-10-01'));
|
||||
$seasonAssignment->addTask($source)->addTask($open)->addTask($done);
|
||||
|
||||
$this->assertSame(1, $seasonAssignment->applyDeadlinesToOpenTasks($source));
|
||||
|
||||
$this->assertSame('2026-11-15', $open->getDeadlineOverride1()?->format('Y-m-d'));
|
||||
$this->assertSame('2026-11-30', $open->getDeadlineOverride2()?->format('Y-m-d'));
|
||||
$this->assertSame('2026-10-01', $done->getDeadlineOverride1()?->format('Y-m-d'));
|
||||
$this->assertNull($done->getDeadlineOverride2());
|
||||
}
|
||||
|
||||
/**
|
||||
* Empty fields are applied as well: that is how the office resets every entry to its
|
||||
* computed deadline in one go.
|
||||
*/
|
||||
public function testApplyingEmptyDeadlinesResetsTheOverrides(): void
|
||||
{
|
||||
$seasonAssignment = new SeasonAssignment();
|
||||
$source = new SeasonAssignmentTask();
|
||||
$other = (new SeasonAssignmentTask())
|
||||
->setDeadlineOverride1(new \DateTimeImmutable('2026-11-15'))
|
||||
->setDeadlineOverride2(new \DateTimeImmutable('2026-11-30'));
|
||||
$seasonAssignment->addTask($source)->addTask($other);
|
||||
|
||||
$seasonAssignment->applyDeadlinesToOpenTasks($source);
|
||||
|
||||
$this->assertNull($other->getDeadlineOverride1());
|
||||
$this->assertNull($other->getDeadlineOverride2());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user