diff --git a/src/TalksBundle/TwigExtension/TalksExtension.php b/src/TalksBundle/TwigExtension/TalksExtension.php index aca95b9b..ea381eb9 100644 --- a/src/TalksBundle/TwigExtension/TalksExtension.php +++ b/src/TalksBundle/TwigExtension/TalksExtension.php @@ -78,11 +78,9 @@ class TalksExtension extends Twig_Extension */ public function getPast($talks, array $eventData = []) { - return $this->format($talks, $eventData) - ->filter(function ($talk) { - return $talk['event']['date'] < $this->today; - }) - ->sortByDesc('event.date'); + return $this->getAll($talks)->filter(function ($talk) { + return collect($talk['events'])->pluck('date')->sort()->last() < $this->today; + }); } /** diff --git a/tests/TalksBundle/TwigExtension/TalksExtensionTest.php b/tests/TalksBundle/TwigExtension/TalksExtensionTest.php index 46b49983..557160ec 100644 --- a/tests/TalksBundle/TwigExtension/TalksExtensionTest.php +++ b/tests/TalksBundle/TwigExtension/TalksExtensionTest.php @@ -75,9 +75,26 @@ class TalksExtensionTest extends TestCase } /** @test */ - public function only_past_events_can_be_retrieved() + public function only_past_talks_can_be_retrieved() { - $this->markTestIncomplete(); + $pastTalk = [ + 'title' => 'Past talk', + 'events' => [ + 'date' => (new DateTime('-1 day'))->format(TalksExtension::DATE_FORMAT), + ] + ]; + + $futureTalk = [ + 'title' => 'Future talk', + 'events' => [ + ['date' => (new DateTime('+1 day'))->format(TalksExtension::DATE_FORMAT)], + ], + ]; + + $result = $this->extension->getPast([$pastTalk, $futureTalk]); + + $this->assertCount(1, $result); + $this->assertSame($pastTalk, $result->first()); } /** @test */