From 66ccb2a56f0592116772f2067528d16c40c077ba Mon Sep 17 00:00:00 2001 From: Joe Cohen Date: Mon, 2 Jul 2018 19:22:01 -0500 Subject: [PATCH 1/2] test metric points by latests --- app/Models/MetricPoint.php | 6 +++++- database/factories/ModelFactory.php | 8 +++++--- tests/Api/MetricPointTest.php | 32 +++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/app/Models/MetricPoint.php b/app/Models/MetricPoint.php index dd70b0f7..6e649400 100644 --- a/app/Models/MetricPoint.php +++ b/app/Models/MetricPoint.php @@ -120,7 +120,11 @@ class MetricPoint extends Model implements HasPresenter $timestamp = $createdAt->format('U'); $timestamp = 30 * round($timestamp / 30); - return Carbon::createFromFormat('U', $timestamp)->toDateTimeString(); + $date = Carbon::createFromFormat('U', $timestamp)->toDateTimeString(); + + $this->attributes['created_at'] = $date; + + return $date; } /** diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index 914c70aa..80c93e0a 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -85,9 +85,11 @@ $factory->define(Metric::class, function ($faker) { $factory->define(MetricPoint::class, function ($faker) { return [ - 'metric_id' => factory(Metric::class)->create()->id, - 'value' => mt_rand(1, 100), - 'counter' => 1, + 'metric_id' => factory(Metric::class)->create()->id, + 'value' => mt_rand(1, 100), + 'counter' => 1, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]; }); diff --git a/tests/Api/MetricPointTest.php b/tests/Api/MetricPointTest.php index a953992c..65c30b2c 100644 --- a/tests/Api/MetricPointTest.php +++ b/tests/Api/MetricPointTest.php @@ -39,6 +39,38 @@ class MetricPointTest extends AbstractApiTestCase $response->assertStatus(200); } + public function test_can_get_all_metric_points_in_order_by_latests() + { + $metric = factory(Metric::class)->create(); + $metricPoint1 = factory(MetricPoint::class)->create([ + 'metric_id' => $metric->id, + 'created_at' => Carbon::parse('2016-12-01 2:00pm'), + 'updated_at' => Carbon::parse('2016-12-01 2:00pm'), + ]); + $metricPoint2 = factory(MetricPoint::class)->create([ + 'metric_id' => $metric->id, + 'created_at' => Carbon::parse('2016-12-01 1:00pm'), + 'updated_at' => Carbon::parse('2016-12-01 1:00pm'), + ]); + $metricPoint3 = factory(MetricPoint::class)->create([ + 'metric_id' => $metric->id, + 'created_at' => Carbon::parse('2016-12-01 4:00pm'), + 'updated_at' => Carbon::parse('2016-12-01 4:00pm'), + ]); + + $response = $this->json('GET', "/api/v1/metrics/{$metric->id}/points"); + + $response->assertJson([ + 'data' => [ + ['id' => $metricPoint3->id], + ['id' => $metricPoint1->id], + ['id' => $metricPoint2->id], + ] + ]); + + $response->assertStatus(200); + } + public function test_cannot_create_metric_point_without_authorization() { $metric = factory(Metric::class)->create(); From 72adad8a1596eb5ab8389f987a18e928131dc171 Mon Sep 17 00:00:00 2001 From: Joe Cohen Date: Tue, 3 Jul 2018 00:22:24 +0000 Subject: [PATCH 2/2] Apply fixes from StyleCI [ci skip] [skip ci] --- tests/Api/MetricPointTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Api/MetricPointTest.php b/tests/Api/MetricPointTest.php index 65c30b2c..7f600fe5 100644 --- a/tests/Api/MetricPointTest.php +++ b/tests/Api/MetricPointTest.php @@ -43,17 +43,17 @@ class MetricPointTest extends AbstractApiTestCase { $metric = factory(Metric::class)->create(); $metricPoint1 = factory(MetricPoint::class)->create([ - 'metric_id' => $metric->id, + 'metric_id' => $metric->id, 'created_at' => Carbon::parse('2016-12-01 2:00pm'), 'updated_at' => Carbon::parse('2016-12-01 2:00pm'), ]); $metricPoint2 = factory(MetricPoint::class)->create([ - 'metric_id' => $metric->id, + 'metric_id' => $metric->id, 'created_at' => Carbon::parse('2016-12-01 1:00pm'), 'updated_at' => Carbon::parse('2016-12-01 1:00pm'), ]); $metricPoint3 = factory(MetricPoint::class)->create([ - 'metric_id' => $metric->id, + 'metric_id' => $metric->id, 'created_at' => Carbon::parse('2016-12-01 4:00pm'), 'updated_at' => Carbon::parse('2016-12-01 4:00pm'), ]); @@ -65,7 +65,7 @@ class MetricPointTest extends AbstractApiTestCase ['id' => $metricPoint3->id], ['id' => $metricPoint1->id], ['id' => $metricPoint2->id], - ] + ], ]); $response->assertStatus(200);