[3.0] Update Symfony to 7.4 and dependencies, removed deprecated code, removed API password (#5622)

* deactivate deprecated auto-mapping
* use native month-picker with fallback on old browser
* bump dependencies to new major versions
* replace deprecated ARRAY column type with JSON
* named arguments
* nullable arguments
* native lazy ghosts
* update routes to use php config
* disable PHP < 8.4
* use static RTL configuration
* new qr code package
* clear out env file
* recipe updates
* fix deprecations
* preset new env variable if not existing
* bump maria db version examples
* remove deprecated api-token support
* fix validator deprecations
* remove timesheet category column
* fix broken validator autoconfiguration
* stabilize tests
* fix migration syntax compatibility
* fix doctrine deprecation
* fix datetime format
* remove constructor dependency
* only include visible preferences in invoice templates
* fix test container dependency
* removed ProjectConstraint multi-constraint logic
* allow to disable plugins in certain environments
* refactor TimesheetConstraint to non-service
* activate new interface methods
* prevent update issues with .env
* improved customer fixture
* removed $user->isExportDecimal()
This commit is contained in:
Kevin Papst
2026-01-04 15:04:25 +01:00
committed by GitHub
parent 9e87fc131b
commit 677f8d776c
467 changed files with 3929 additions and 6567 deletions

View File

@@ -11,7 +11,6 @@ namespace App\Tests\Utils;
use App\Utils\SearchTerm;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\TestCase;
#[CoversClass(SearchTerm::class)]
@@ -20,8 +19,6 @@ class SearchTermTest extends TestCase
public function testNormalSearchTerm(): void
{
$sut = new SearchTerm('foo bar test 1');
self::assertEquals('foo bar test 1', $sut->getSearchTerm());
self::assertEmpty($sut->getSearchFields());
self::assertTrue($sut->hasSearchTerm());
self::assertEquals('foo bar test 1', $sut->getOriginalSearch());
self::assertEquals('foo bar test 1', (string) $sut);
@@ -44,9 +41,6 @@ class SearchTermTest extends TestCase
{
$sut = new SearchTerm('foo:bar');
self::assertFalse($sut->hasSearchTerm());
self::assertEquals('', $sut->getSearchTerm());
self::assertNotEmpty($sut->getSearchFields());
self::assertEquals(['foo' => 'bar'], $sut->getSearchFields());
self::assertEquals('foo:bar', $sut->getOriginalSearch());
self::assertCount(1, $sut->getParts());
$expectedParts = [
@@ -61,30 +55,10 @@ class SearchTermTest extends TestCase
}
}
#[Group('legacy')]
public function testWithMultipleMetaFields(): void
{
$sut = new SearchTerm('foo:bar bar:foo');
self::assertFalse($sut->hasSearchTerm());
self::assertEquals('', $sut->getSearchTerm());
self::assertNotEmpty($sut->getSearchFields());
self::assertFalse($sut->hasSearchField('test')); // @phpstan-ignore method.deprecated
self::assertTrue($sut->hasSearchField('foo')); // @phpstan-ignore method.deprecated
self::assertTrue($sut->hasSearchField('bar')); // @phpstan-ignore method.deprecated
self::assertEquals('bar', $sut->getSearchField('foo')); // @phpstan-ignore method.deprecated
self::assertEquals('foo', $sut->getSearchField('bar')); // @phpstan-ignore method.deprecated
self::assertEquals(['foo' => 'bar', 'bar' => 'foo'], $sut->getSearchFields());
self::assertEquals('foo:bar bar:foo', $sut->getOriginalSearch());
self::assertCount(2, $sut->getParts());
}
public function testComplexWithMultipleAndDuplicateMetaFields(): void
{
$sut = new SearchTerm('foo:bar hello bar:!foo world test foo:bar2 wuff');
self::assertTrue($sut->hasSearchTerm());
self::assertEquals('hello world test wuff', $sut->getSearchTerm());
self::assertNotEmpty($sut->getSearchFields());
self::assertEquals(['foo' => 'bar2', 'bar' => 'foo'], $sut->getSearchFields());
self::assertEquals('foo:bar hello bar:!foo world test foo:bar2 wuff', $sut->getOriginalSearch());
self::assertCount(7, $sut->getParts());
$expectedParts = [
@@ -109,9 +83,6 @@ class SearchTermTest extends TestCase
{
$sut = new SearchTerm('ABC-123: abcd: abcd');
self::assertTrue($sut->hasSearchTerm());
self::assertEquals('ABC-123: abcd: abcd', $sut->getSearchTerm());
self::assertEmpty($sut->getSearchFields());
self::assertEquals([], $sut->getSearchFields());
self::assertEquals('ABC-123: abcd: abcd', $sut->getOriginalSearch());
self::assertCount(3, $sut->getParts());
$expectedParts = [
@@ -129,9 +100,6 @@ class SearchTermTest extends TestCase
$sut = new SearchTerm('1 : 1:.');
self::assertTrue($sut->hasSearchTerm());
self::assertEquals('1 :', $sut->getSearchTerm());
self::assertNotEmpty($sut->getSearchFields());
self::assertSame([1 => '.'], $sut->getSearchFields()); // this is weird, should be a string, but PHP seems to think otherwise
self::assertEquals('1 : 1:.', $sut->getOriginalSearch());
self::assertCount(3, $sut->getParts());
$expectedParts = [
@@ -152,9 +120,6 @@ class SearchTermTest extends TestCase
{
$sut = new SearchTerm('ABC-123:"" abcd:"" abcd');
self::assertTrue($sut->hasSearchTerm());
self::assertEquals('abcd', $sut->getSearchTerm());
self::assertNotEmpty($sut->getSearchFields());
self::assertEquals(['ABC-123' => '', 'abcd' => ''], $sut->getSearchFields());
self::assertEquals('ABC-123:"" abcd:"" abcd', $sut->getOriginalSearch());
self::assertCount(3, $sut->getParts());
$expectedParts = [