From c084a2c5a6e4d358b28a5ac319be9dea375c07ac Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Sat, 9 Nov 2019 12:56:53 -0500 Subject: [PATCH 1/3] use Carbon::now for fresh timestamps --- src/Jenssegers/Mongodb/Eloquent/Model.php | 2 +- tests/ModelTest.php | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Jenssegers/Mongodb/Eloquent/Model.php b/src/Jenssegers/Mongodb/Eloquent/Model.php index 78e9b1efa..d4a66b36a 100644 --- a/src/Jenssegers/Mongodb/Eloquent/Model.php +++ b/src/Jenssegers/Mongodb/Eloquent/Model.php @@ -118,7 +118,7 @@ public function getDateFormat() */ public function freshTimestamp() { - return new UTCDateTime(time() * 1000); + return new UTCDateTime(Carbon::now()); } /** diff --git a/tests/ModelTest.php b/tests/ModelTest.php index d774e5306..c1404f047 100644 --- a/tests/ModelTest.php +++ b/tests/ModelTest.php @@ -434,6 +434,16 @@ public function testDates(): void $this->assertEquals((string) $user->getAttribute('entry.date')->format('Y-m-d H:i:s'), $data['entry']['date']); } + public function testCarbonDateMockingWorks() + { + $fakeDate = \Carbon\Carbon::createFromDate(2000, 01, 01); + + Carbon::setTestNow($fakeDate); + $item = Item::create(['name' => 'sword']); + + $this->assertEquals($item->created_at, $fakeDate); + } + public function testIdAttribute(): void { /** @var User $user */ From 1d7f2fc2d642952c858c3726a441b47eb010311c Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Sat, 9 Nov 2019 13:07:37 -0500 Subject: [PATCH 2/3] account for millsecond differences in execution --- tests/ModelTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ModelTest.php b/tests/ModelTest.php index c1404f047..c567361aa 100644 --- a/tests/ModelTest.php +++ b/tests/ModelTest.php @@ -441,7 +441,7 @@ public function testCarbonDateMockingWorks() Carbon::setTestNow($fakeDate); $item = Item::create(['name' => 'sword']); - $this->assertEquals($item->created_at, $fakeDate); + $this->assertLessThan($fakeDate->diffInSeconds($item->created_at), 1); } public function testIdAttribute(): void From 9a5b1bd25537a4d3ee2e876d923a3a55719399f9 Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Sat, 9 Nov 2019 13:13:32 -0500 Subject: [PATCH 3/3] fix assertion --- tests/ModelTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ModelTest.php b/tests/ModelTest.php index c567361aa..ab9ad63b8 100644 --- a/tests/ModelTest.php +++ b/tests/ModelTest.php @@ -441,7 +441,7 @@ public function testCarbonDateMockingWorks() Carbon::setTestNow($fakeDate); $item = Item::create(['name' => 'sword']); - $this->assertLessThan($fakeDate->diffInSeconds($item->created_at), 1); + $this->assertLessThan(1, $fakeDate->diffInSeconds($item->created_at)); } public function testIdAttribute(): void