Release 2.19 (#4922)

This commit is contained in:
Kevin Papst
2024-07-22 17:51:03 +02:00
committed by GitHub
parent ce22520d7f
commit 8788311faf
32 changed files with 585 additions and 372 deletions

View File

@@ -24,11 +24,13 @@ class QuickEntryControllerTest extends ControllerBaseTest
public function testIndexAction(): void
{
$client = $this->getClientForAuthenticatedUser();
$this->request($client, '/quick_entry');
$this->request($client, '/quick_entry/');
$this->assertTrue($client->getResponse()->isSuccessful());
$node = $client->getCrawler()->filter('section.content form[name=quick_entry_form]');
$node = $client->getCrawler()->filter('form[name=quick_entry_weekrange_form]');
self::assertEquals(1, $node->filter('div.btn-group.week-picker-btn-group')->count());
$node = $client->getCrawler()->filter('section.content form[name=quick_entry_form]');
self::assertEquals(1, $node->filter('input.btn-primary[type=submit]')->count());
$addBtn = $node->filter('button.btn-success[type=button]');
@@ -62,11 +64,10 @@ class QuickEntryControllerTest extends ControllerBaseTest
$fixture->setStartDate(new \DateTime('-7 days'));
$this->importFixture($fixture);
$this->request($client, '/quick_entry');
$this->request($client, '/quick_entry/');
$this->assertTrue($client->getResponse()->isSuccessful());
$node = $client->getCrawler()->filter('section.content form[name=quick_entry_form]');
self::assertEquals(1, $node->filter('div.btn-group.week-picker-btn-group')->count());
$node = $client->getCrawler()->filter('form[name=quick_entry_form]');
self::assertEquals(1, $node->filter('input.btn-primary[type=submit]')->count());
$addBtn = $node->filter('button.btn-success[type=button]');

View File

@@ -23,11 +23,12 @@ class QuickEntryModelTest extends TestCase
{
public function testEmptyModel(): void
{
$sut = new QuickEntryModel();
$user = new User();
$sut = new QuickEntryModel($user);
self::assertFalse($sut->isPrototype());
self::assertNull($sut->getProject());
self::assertNull($sut->getActivity());
self::assertNull($sut->getUser());
self::assertEquals($user, $sut->getUser());
self::assertEquals([], $sut->getNewTimesheet());
self::assertEquals([], $sut->getTimesheets());
self::assertNull($sut->getLatestEntry());
@@ -103,7 +104,8 @@ class QuickEntryModelTest extends TestCase
public function testHasExistingTimesheet(): void
{
$sut = new QuickEntryModel();
$user = new User();
$sut = new QuickEntryModel($user);
self::assertFalse($sut->hasExistingTimesheet());
$mock = $this->createMock(Timesheet::class);
@@ -128,11 +130,12 @@ class QuickEntryModelTest extends TestCase
public function testPrototype(): void
{
$sut = new QuickEntryModel();
$user = new User();
$sut = new QuickEntryModel($user);
$sut->markAsPrototype();
self::assertTrue($sut->isPrototype());
$sut = new QuickEntryModel();
$sut = new QuickEntryModel($user);
$sut->markAsPrototype();
$mock = $this->createMock(Timesheet::class);
$mock->method('getId')->willReturn(1);

View File

@@ -9,6 +9,7 @@
namespace App\Tests\Model;
use App\Entity\User;
use App\Model\QuickEntryModel;
use App\Model\QuickEntryWeek;
use PHPUnit\Framework\TestCase;
@@ -27,7 +28,7 @@ class QuickEntryWeekTest extends TestCase
self::assertEquals([], $sut->getRows());
$rows = [
new QuickEntryModel()
new QuickEntryModel(new User())
];
$sut->setRows($rows);

View File

@@ -64,7 +64,7 @@ class ExtensionsTest extends TestCase
public function testGetFunctions(): void
{
$functions = ['class_name', 'iso_day_by_name', 'random_color'];
$functions = ['report_date', 'class_name', 'iso_day_by_name', 'random_color'];
$sut = $this->getSut();
$twigFunctions = $sut->getFunctions();
$this->assertCount(\count($functions), $twigFunctions);

View File

@@ -483,6 +483,33 @@ class LocaleFormatExtensionsTest extends TestCase
self::assertEquals($expected, $sut->getJavascriptConfiguration($user));
}
public function testJavascriptConfigurationsForAnonymous(): void
{
$expected = [
'formatDuration' => '%h:%m',
'formatDate' => 'Y-m-d',
'defaultColor' => '#d2d6de',
'twentyFourHours' => false,
'updateBrowserTitle' => false,
'timezone' => 'Europe/Vienna',
'locale' => 'en',
'language' => 'en',
'user' => [
'id' => null,
'name' => 'anonymous',
'admin' => false,
'superAdmin' => false,
],
];
$security = $this->createMock(Security::class);
$sut = new LocaleFormatExtensions(new LocaleService($this->localeEn), $security);
$sut->setLocale('en');
self::assertEquals($expected, $sut->getJavascriptConfiguration());
}
public function testDurationDecimal(): void
{
$record = $this->getTimesheet(9437);

View File

@@ -12,6 +12,7 @@ namespace App\Tests\Validator\Constraints;
use App\Entity\Activity;
use App\Entity\Project;
use App\Entity\Timesheet;
use App\Entity\User;
use App\Model\QuickEntryModel as QuickEntryModelEntity;
use App\Validator\Constraints\QuickEntryModel;
use App\Validator\Constraints\QuickEntryModelValidator;
@@ -47,7 +48,8 @@ class QuickEntryModelValidatorTest extends ConstraintValidatorTestCase
public function testTriggersOnMissingProjectAndActivity(): void
{
$model = new QuickEntryModelEntity();
$user = new User();
$model = new QuickEntryModelEntity($user);
$timesheet = new Timesheet();
$timesheet->setBegin(new \DateTime());
$timesheet->setBegin(new \DateTime('+ 1 hour'));
@@ -66,7 +68,8 @@ class QuickEntryModelValidatorTest extends ConstraintValidatorTestCase
public function testTriggersOnMissingActivity(): void
{
$model = new QuickEntryModelEntity();
$user = new User();
$model = new QuickEntryModelEntity($user);
$model->setProject(new Project());
$timesheet = new Timesheet();
$timesheet->setBegin(new \DateTime());
@@ -83,7 +86,8 @@ class QuickEntryModelValidatorTest extends ConstraintValidatorTestCase
public function testTriggersOnMissingProject(): void
{
$model = new QuickEntryModelEntity();
$user = new User();
$model = new QuickEntryModelEntity($user);
$model->setActivity(new Activity());
$timesheet = new Timesheet();
$timesheet->setBegin(new \DateTime());
@@ -100,7 +104,8 @@ class QuickEntryModelValidatorTest extends ConstraintValidatorTestCase
public function testDoesNotTriggerOnPrototype(): void
{
$model = new QuickEntryModelEntity();
$user = new User();
$model = new QuickEntryModelEntity($user);
$this->validator->validate($model, new QuickEntryModel());
@@ -109,7 +114,8 @@ class QuickEntryModelValidatorTest extends ConstraintValidatorTestCase
public function testDoesNotTriggerOnProperlyFilled(): void
{
$model = new QuickEntryModelEntity();
$user = new User();
$model = new QuickEntryModelEntity($user);
$model->setActivity(new Activity());
$model->setProject(new Project());
$timesheet = new Timesheet();