[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:
@@ -28,9 +28,9 @@ use Symfony\Component\HttpFoundation\Response;
|
||||
#[Group('integration')]
|
||||
class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
{
|
||||
public const DATE_FORMAT = 'Y-m-d H:i:s';
|
||||
public const DATE_FORMAT_HTML5 = 'Y-m-d\TH:i:s';
|
||||
public const TEST_TIMEZONE = 'Europe/London';
|
||||
public const string DATE_FORMAT = 'Y-m-d H:i:s';
|
||||
public const string DATE_FORMAT_HTML5 = 'Y-m-d\TH:i:s';
|
||||
public const string TEST_TIMEZONE = 'Europe/London';
|
||||
|
||||
/**
|
||||
* @return Timesheet[]
|
||||
@@ -470,8 +470,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
$data = [
|
||||
'activity' => 1,
|
||||
'project' => 1,
|
||||
'begin' => ($dateTime->createDateTime('-8 hours'))->format('Y-m-d H:m:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:m:0'),
|
||||
'begin' => ($dateTime->createDateTime('-8 hours'))->format('Y-m-d H:i:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:i:0'),
|
||||
'description' => 'foo',
|
||||
'fixedRate' => 2016,
|
||||
'hourlyRate' => 127,
|
||||
@@ -501,8 +501,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
$data = [
|
||||
'activity' => 1,
|
||||
'project' => 1,
|
||||
'begin' => ($dateTime->createDateTime('-8 hours'))->format('Y-m-d H:m:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:m:0'),
|
||||
'begin' => ($dateTime->createDateTime('-8 hours'))->format('Y-m-d H:i:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:i:0'),
|
||||
'description' => 'foo',
|
||||
'fixedRate' => 2016,
|
||||
'hourlyRate' => 127,
|
||||
@@ -538,8 +538,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
'activity' => 1,
|
||||
'project' => 1,
|
||||
'user' => $user->getId(),
|
||||
'begin' => ($dateTime->createDateTime('- 8 hours'))->format('Y-m-d H:m:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:m:0'),
|
||||
'begin' => ($dateTime->createDateTime('- 8 hours'))->format('Y-m-d H:i:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:i:0'),
|
||||
'description' => 'foo',
|
||||
];
|
||||
$json = json_encode($data);
|
||||
@@ -585,8 +585,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
$data = [
|
||||
'activity' => $activity->getId(),
|
||||
'project' => $project->getId(),
|
||||
'begin' => (new \DateTime('- 8 hours'))->format('Y-m-d H:m:s'),
|
||||
'end' => (new \DateTime())->format('Y-m-d H:m:s'),
|
||||
'begin' => (new \DateTime('- 8 hours'))->format('Y-m-d H:i:s'),
|
||||
'end' => (new \DateTime())->format('Y-m-d H:i:s'),
|
||||
'description' => 'foo',
|
||||
];
|
||||
$json = json_encode($data);
|
||||
@@ -612,8 +612,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
$em->persist($project);
|
||||
|
||||
$data = [
|
||||
'begin' => (new \DateTime('- 8 hours'))->format('Y-m-d H:m:s'),
|
||||
'end' => (new \DateTime())->format('Y-m-d H:m:s'),
|
||||
'begin' => (new \DateTime('- 8 hours'))->format('Y-m-d H:i:s'),
|
||||
'end' => (new \DateTime())->format('Y-m-d H:i:s'),
|
||||
'project' => $project->getId(),
|
||||
'activity' => 99,
|
||||
];
|
||||
@@ -635,8 +635,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
$em->flush();
|
||||
|
||||
$data = [
|
||||
'begin' => (new \DateTime('- 8 hours'))->format('Y-m-d H:m:s'),
|
||||
'end' => (new \DateTime())->format('Y-m-d H:m:s'),
|
||||
'begin' => (new \DateTime('- 8 hours'))->format('Y-m-d H:i:s'),
|
||||
'end' => (new \DateTime())->format('Y-m-d H:i:s'),
|
||||
'project' => 99,
|
||||
'activity' => $activity->getId(),
|
||||
];
|
||||
@@ -788,8 +788,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
$data = [
|
||||
'activity' => 1,
|
||||
'project' => 1,
|
||||
'begin' => ($dateTime->createDateTime('-8 hours'))->format('Y-m-d H:m:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:m:0'),
|
||||
'begin' => ($dateTime->createDateTime('-8 hours'))->format('Y-m-d H:i:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:i:0'),
|
||||
'description' => 'foo',
|
||||
];
|
||||
$json = json_encode($data);
|
||||
@@ -812,8 +812,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
$data = [
|
||||
'activity' => 1,
|
||||
'project' => 1,
|
||||
'begin' => ($dateTime->createDateTime('- 7 hours'))->format('Y-m-d\TH:m:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d\TH:m:0'),
|
||||
'begin' => ($dateTime->createDateTime('- 7 hours'))->format('Y-m-d\TH:i:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d\TH:i:0'),
|
||||
'description' => 'foo',
|
||||
'billable' => false,
|
||||
];
|
||||
@@ -853,8 +853,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
$data = [
|
||||
'activity' => 1,
|
||||
'project' => 1,
|
||||
'begin' => (new \DateTime('- 7 hours'))->format('Y-m-d\TH:m:s'),
|
||||
'end' => (new \DateTime())->format('Y-m-d\TH:m:s'),
|
||||
'begin' => (new \DateTime('- 7 hours'))->format('Y-m-d\TH:i:s'),
|
||||
'end' => (new \DateTime())->format('Y-m-d\TH:i:s'),
|
||||
'description' => 'foo',
|
||||
'exported' => true,
|
||||
];
|
||||
@@ -874,12 +874,14 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$timesheets = $this->importFixtureForUser(User::ROLE_USER);
|
||||
$begin = new \DateTimeImmutable();
|
||||
$end = $begin->modify('-1 day');
|
||||
|
||||
$data = [
|
||||
'activity' => 10,
|
||||
'project' => 1,
|
||||
'begin' => (new \DateTime())->format('Y-m-d H:m'),
|
||||
'end' => (new \DateTime('-1 day'))->format('Y-m-d H:m'),
|
||||
'begin' => $begin->format('Y-m-d H:m'),
|
||||
'end' => $end->format('Y-m-d H:m'),
|
||||
'description' => 'foo',
|
||||
];
|
||||
$json = json_encode($data);
|
||||
@@ -1034,6 +1036,7 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
self::assertIsString($content);
|
||||
$result = json_decode($content, true);
|
||||
|
||||
self::assertIsArray($result);
|
||||
self::assertEquals(3, \count($result));
|
||||
foreach ($result as $timesheet) {
|
||||
self::assertIsArray($timesheet);
|
||||
@@ -1284,7 +1287,9 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
self::assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
|
||||
self::assertEquals('foo', $result['description']);
|
||||
self::assertEquals([['name' => 'sdfsdf', 'value' => 'nnnnn'], ['name' => '1234567890', 'value' => '1234567890']], $result['metaFields']);
|
||||
self::assertIsArray($result['metaFields']);
|
||||
self::assertEquals(['name' => 'sdfsdf', 'value' => 'nnnnn'], $result['metaFields'][0]);
|
||||
self::assertEquals(['name' => '1234567890', 'value' => '1234567890'], $result['metaFields'][1]);
|
||||
self::assertEquals(['another', 'testing', 'bar'], $result['tags']);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
@@ -1332,8 +1337,8 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
$data = [
|
||||
'activity' => 1,
|
||||
'project' => 1,
|
||||
'begin' => ($dateTime->createDateTime('- 8 hours'))->format('Y-m-d H:m:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:m:0'),
|
||||
'begin' => ($dateTime->createDateTime('- 8 hours'))->format('Y-m-d H:i:0'),
|
||||
'end' => ($dateTime->createDateTime())->format('Y-m-d H:i:0'),
|
||||
'description' => 'foo',
|
||||
'fixedRate' => 2016,
|
||||
'hourlyRate' => 127
|
||||
@@ -1488,7 +1493,16 @@ class TimesheetControllerTest extends APIControllerBaseTestCase
|
||||
|
||||
self::assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
|
||||
self::assertEquals(['name' => 'metatestmock', 'value' => 'another,testing,bar'], $result['metaFields'][0]);
|
||||
self::assertIsArray($result['metaFields']);
|
||||
$found = false;
|
||||
foreach ($result['metaFields'] as $field) {
|
||||
self::assertIsArray($field);
|
||||
if ($field['name'] === 'metatestmock') {
|
||||
self::assertEquals(['name' => 'metatestmock', 'value' => 'another,testing,bar'], $field);
|
||||
$found = true;
|
||||
}
|
||||
}
|
||||
self::assertTrue($found);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
|
||||
Reference in New Issue
Block a user