125 - Pushing Logic Out of the View

This commit is contained in:
Adam Wathan
2017-07-10 15:12:28 -04:00
parent 2b95a57e8c
commit df93546ed4
3 changed files with 28 additions and 11 deletions

View File

@@ -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()

View File

@@ -32,7 +32,7 @@
<div class="m-xs-b-6">
<h2 class="m-xs-b-3 text-base wt-medium text-dark-soft">Published</h2>
<div class="row">
@foreach ($concerts->filter->isPublished() as $concert)
@foreach ($publishedConcerts as $concert)
<div class="col-xs-12 col-lg-4">
<div class="card m-xs-b-4">
<div class="card-section">
@@ -62,7 +62,7 @@
<div>
<h2 class="m-xs-b-3 text-base wt-medium text-dark-soft">Drafts</h2>
<div class="row">
@foreach ($concerts->reject->isPublished() as $concert)
@foreach ($unpublishedConcerts as $concert)
<div class="col-xs-12 col-lg-4">
<div class="card m-xs-b-4">
<div class="card-section">

View File

@@ -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);
}
}