Release 2.0.26 (#4087)

- setting "rounding days" not required
- developer: added user pref for public holiday group (to be used by plugins)
- developer: added WorkingTimeYearEvent (to be used by plugins)
- user pref: cleanup work contract form and support more fields (to be used by plugins)
- code cleanup
- bump theme and composer packages
This commit is contained in:
Kevin Papst
2023-06-09 16:29:19 +02:00
committed by GitHub
parent 0663995d06
commit 6e781b59e2
22 changed files with 241 additions and 167 deletions

View File

@@ -82,6 +82,7 @@ class UserTest extends TestCase
self::assertEquals(0, $user->getWorkHoursSunday());
self::assertEquals(0, $user->getHolidaysPerYear());
self::assertFalse($user->hasWorkHourConfiguration());
self::assertNull($user->getPublicHolidayGroup());
}
public function testWorkContract(): void
@@ -115,6 +116,12 @@ class UserTest extends TestCase
self::assertEquals(7600, $user->getWorkHoursForDay(new \DateTime('2023-05-12 12:00:00', new \DateTimeZone('Europe/Berlin'))));
self::assertEquals(7700, $user->getWorkHoursForDay(new \DateTime('2023-05-13 12:00:00', new \DateTimeZone('Europe/Berlin'))));
self::assertEquals(7800, $user->getWorkHoursForDay(new \DateTime('2023-05-14 12:00:00', new \DateTimeZone('Europe/Berlin'))));
$user->setPublicHolidayGroup('10');
self::assertEquals('10', $user->getPublicHolidayGroup());
$user->setPublicHolidayGroup('DE-NRW');
self::assertEquals('DE-NRW', $user->getPublicHolidayGroup());
}
public function testColor(): void

View File

@@ -0,0 +1,31 @@
<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Tests\Event;
use App\Entity\User;
use App\Event\WorkingTimeYearEvent;
use App\WorkingTime\Model\Year;
use PHPUnit\Framework\TestCase;
/**
* @covers \App\Event\WorkingTimeYearEvent
*/
class WorkingTimeYearEventTest extends TestCase
{
public function testGetter(): void
{
$user = new User();
$date = new \DateTime('2023-02-10');
$year = new Year($date, $user);
$sut = new WorkingTimeYearEvent($year);
self::assertSame($year, $sut->getYear());
}
}

View File

@@ -30,7 +30,7 @@ class MonthTest extends TestCase
$month = new Month($date);
self::assertEquals(sprintf('2020-%s-25', $monthKey), $month->getMonth()->format('Y-m-d'));
self::assertCount($days, $month->getDays());
self::assertTrue($month->isLocked());
self::assertFalse($month->isLocked());
self::assertEquals(0, $month->getActualTime());
self::assertEquals(0, $month->getExpectedTime(new \DateTimeImmutable('2035-01-02')));
self::assertNull($month->getLockDate());
@@ -51,6 +51,26 @@ class MonthTest extends TestCase
self::assertEquals($expected, $day->getWorkingTime()->getExpectedTime());
self::assertEquals($duration, $day->getWorkingTime()->getActualTime());
}
self::assertFalse($month->isLocked());
foreach ($month->getDays() as $day) {
$workingTime = $day->getWorkingTime();
self::assertNotNull($workingTime);
$workingTime->setApprovedAt(new \DateTimeImmutable());
}
self::assertTrue($month->isLocked());
$day = $month->getDays()[5];
$wt = $day->getWorkingTime();
self::assertNotNull($wt);
$day->setWorkingTime(null);
self::assertFalse($month->isLocked());
$day->setWorkingTime($wt);
self::assertTrue($month->isLocked());
$wt->setApprovedAt(null);
self::assertFalse($month->isLocked());
}
}
}

View File

@@ -6582,11 +6582,6 @@ parameters:
count: 1
path: Form/Type/TypeTestModel.php
-
message: "#^Method App\\\\Tests\\\\Form\\\\Type\\\\TypeTestModel\\:\\:__set\\(\\) has no return type specified\\.$#"
count: 1
path: Form/Type/TypeTestModel.php
-
message: "#^Method App\\\\Tests\\\\Form\\\\Type\\\\TypeTestModel\\:\\:__set\\(\\) has parameter \\$name with no type specified\\.$#"
count: 1