fix serialized dates from API (#1888)
This commit is contained in:
@@ -38,9 +38,10 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
->setHourlyRate(true)
|
||||
->setAmount(10)
|
||||
->setUser($this->getUserByRole($role))
|
||||
->setStartDate((new \DateTime('first day of this month'))->setTime(0, 0, 1))
|
||||
->setAllowEmptyDescriptions(false)
|
||||
->setStartDate((new \DateTime('first day of this month'))->setTime(0, 0, 1))
|
||||
;
|
||||
|
||||
$this->importFixture($fixture);
|
||||
}
|
||||
|
||||
@@ -273,12 +274,62 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
public function testGetEntity()
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->importFixtureForUser(User::ROLE_USER);
|
||||
$em = $this->getEntityManager();
|
||||
|
||||
$startDate = new \DateTime('2020-03-27 14:35:59', new \DateTimeZone('Pacific/Tongatapu'));
|
||||
$endDate = (clone $startDate)->modify('+ 46385 seconds');
|
||||
$project = $em->getRepository(Project::class)->find(1);
|
||||
$activity = $em->getRepository(Activity::class)->find(1);
|
||||
|
||||
$tag = new Tag();
|
||||
$tag->setName('test');
|
||||
$em->persist($tag);
|
||||
|
||||
$timesheet = new Timesheet();
|
||||
$timesheet
|
||||
->setHourlyRate(137.21)
|
||||
->setInternalRate(64.96)
|
||||
->setBegin($startDate)
|
||||
->setEnd($endDate)
|
||||
->setExported(true)
|
||||
->setDescription('**foo**' . PHP_EOL . 'bar')
|
||||
->setUser($this->getUserByRole(User::ROLE_USER))
|
||||
->setProject($project)
|
||||
->setActivity($activity)
|
||||
->addTag($tag)
|
||||
;
|
||||
$em->persist($timesheet);
|
||||
|
||||
$this->assertAccessIsGranted($client, '/api/timesheets/1');
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
|
||||
|
||||
$expected = [
|
||||
'activity' => 1,
|
||||
'project' => 1,
|
||||
'user' => 2,
|
||||
'tags' => [
|
||||
0 => 'test'
|
||||
],
|
||||
'id' => 1,
|
||||
// make sure the timezone is properly applied in serializer (see #1858)
|
||||
// minute and second are different from the above datetime object, because of applied default minute rounding
|
||||
'begin' => '2020-03-27T14:35:00+1300',
|
||||
'end' => '2020-03-28T03:30:00+1300',
|
||||
'description' => "**foo**\nbar",
|
||||
'duration' => 46500,
|
||||
'exported' => true,
|
||||
'metaFields' => [],
|
||||
'hourlyRate' => 137.21,
|
||||
'rate' => 1772.3,
|
||||
'internalRate' => 0.0,
|
||||
];
|
||||
|
||||
foreach ($expected as $key => $value) {
|
||||
self::assertEquals($value, $result[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetEntityAccessDenied()
|
||||
|
||||
Reference in New Issue
Block a user