mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-01-26 11:14:06 +00:00
125 - Pushing Logic Out of the View
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user