diff --git a/app/Http/Controllers/Backstage/ConcertsController.php b/app/Http/Controllers/Backstage/ConcertsController.php index 7c58d86..154be19 100644 --- a/app/Http/Controllers/Backstage/ConcertsController.php +++ b/app/Http/Controllers/Backstage/ConcertsController.php @@ -12,7 +12,10 @@ class ConcertsController extends Controller { public function index() { - return view('backstage.concerts.index', ['concerts' => Auth::user()->concerts]); + return view('backstage.concerts.index', [ + 'publishedConcerts' => Auth::user()->concerts->filter->isPublished(), + 'unpublishedConcerts' => Auth::user()->concerts->reject->isPublished(), + ]); } public function create() diff --git a/resources/views/backstage/concerts/index.blade.php b/resources/views/backstage/concerts/index.blade.php index 7f6f605..4170768 100644 --- a/resources/views/backstage/concerts/index.blade.php +++ b/resources/views/backstage/concerts/index.blade.php @@ -32,7 +32,7 @@

Published

- @foreach ($concerts->filter->isPublished() as $concert) + @foreach ($publishedConcerts as $concert)
@@ -62,7 +62,7 @@

Drafts

- @foreach ($concerts->reject->isPublished() as $concert) + @foreach ($unpublishedConcerts as $concert)
diff --git a/tests/Feature/Backstage/ViewConcertListTest.php b/tests/Feature/Backstage/ViewConcertListTest.php index c5d53ba..1ed4c06 100644 --- a/tests/Feature/Backstage/ViewConcertListTest.php +++ b/tests/Feature/Backstage/ViewConcertListTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\Backstage; use App\User; use App\Concert; +use ConcertFactory; use Tests\TestCase; use PHPUnit\Framework\Assert; use Illuminate\Database\Eloquent\Collection; @@ -44,17 +45,30 @@ class ViewConcertListTest extends TestCase $this->disableExceptionHandling(); $user = factory(User::class)->create(); $otherUser = factory(User::class)->create(); - $concertA = factory(Concert::class)->create(['user_id' => $user->id]); - $concertB = factory(Concert::class)->create(['user_id' => $user->id]); - $concertC = factory(Concert::class)->create(['user_id' => $otherUser->id]); - $concertD = factory(Concert::class)->create(['user_id' => $user->id]); + $publishedConcertA = ConcertFactory::createPublished(['user_id' => $user->id]); + $publishedConcertB = ConcertFactory::createPublished(['user_id' => $otherUser->id]); + $publishedConcertC = ConcertFactory::createPublished(['user_id' => $user->id]); + + $unpublishedConcertA = factory(Concert::class)->states('unpublished')->create(['user_id' => $user->id]); + $unpublishedConcertB = factory(Concert::class)->states('unpublished')->create(['user_id' => $otherUser->id]); + $unpublishedConcertC = factory(Concert::class)->states('unpublished')->create(['user_id' => $user->id]); $response = $this->actingAs($user)->get('/backstage/concerts'); $response->assertStatus(200); - $response->data('concerts')->assertContains($concertA); - $response->data('concerts')->assertContains($concertB); - $response->data('concerts')->assertContains($concertD); - $response->data('concerts')->assertNotContains($concertC); + + $response->data('publishedConcerts')->assertContains($publishedConcertA); + $response->data('publishedConcerts')->assertNotContains($publishedConcertB); + $response->data('publishedConcerts')->assertContains($publishedConcertC); + $response->data('publishedConcerts')->assertNotContains($unpublishedConcertA); + $response->data('publishedConcerts')->assertNotContains($unpublishedConcertB); + $response->data('publishedConcerts')->assertNotContains($unpublishedConcertC); + + $response->data('unpublishedConcerts')->assertNotContains($publishedConcertA); + $response->data('unpublishedConcerts')->assertNotContains($publishedConcertB); + $response->data('unpublishedConcerts')->assertNotContains($publishedConcertC); + $response->data('unpublishedConcerts')->assertContains($unpublishedConcertA); + $response->data('unpublishedConcerts')->assertNotContains($unpublishedConcertB); + $response->data('unpublishedConcerts')->assertContains($unpublishedConcertC); } }