From a3d6a1efcdad4630d7bfbad2d488aeb261610964 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Thu, 3 Nov 2016 15:05:59 -0400 Subject: [PATCH] 1.8 - Factory States --- database/factories/ModelFactory.php | 12 ++++++++++++ tests/features/ViewConcertListingTest.php | 7 ++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index b46886f..d6f1bd8 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -39,3 +39,15 @@ $factory->define(App\Concert::class, function (Faker\Generator $faker) { 'additional_information' => 'Some sample additional information.', ]; }); + +$factory->state(App\Concert::class, 'published', function ($faker) { + return [ + 'published_at' => Carbon::parse('-1 week'), + ]; +}); + +$factory->state(App\Concert::class, 'unpublished', function ($faker) { + return [ + 'published_at' => null, + ]; +}); diff --git a/tests/features/ViewConcertListingTest.php b/tests/features/ViewConcertListingTest.php index ee18b65..636e52c 100644 --- a/tests/features/ViewConcertListingTest.php +++ b/tests/features/ViewConcertListingTest.php @@ -13,7 +13,7 @@ class ViewConcertListingTest extends TestCase /** @test */ function user_can_view_a_published_concert_listing() { - $concert = Concert::create([ + $concert = factory(Concert::class)->states('published')->create([ 'title' => 'The Red Chord', 'subtitle' => 'with Animosity and Lethargy', 'date' => Carbon::parse('December 13, 2016 8:00pm'), @@ -24,7 +24,6 @@ class ViewConcertListingTest extends TestCase 'state' => 'ON', 'zip' => '17916', 'additional_information' => 'For tickets, call (555) 555-5555.', - 'published_at' => Carbon::parse('-1 week'), ]); $this->visit('/concerts/'.$concert->id); @@ -43,9 +42,7 @@ class ViewConcertListingTest extends TestCase /** @test */ function user_cannot_view_unpublished_concert_listings() { - $concert = factory(Concert::class)->create([ - 'published_at' => null, - ]); + $concert = factory(Concert::class)->states('unpublished')->create(); $this->get('/concerts/'.$concert->id);