mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-02-12 17:52:22 +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()
|
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()
|
public function create()
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
<div class="m-xs-b-6">
|
<div class="m-xs-b-6">
|
||||||
<h2 class="m-xs-b-3 text-base wt-medium text-dark-soft">Published</h2>
|
<h2 class="m-xs-b-3 text-base wt-medium text-dark-soft">Published</h2>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@foreach ($concerts->filter->isPublished() as $concert)
|
@foreach ($publishedConcerts as $concert)
|
||||||
<div class="col-xs-12 col-lg-4">
|
<div class="col-xs-12 col-lg-4">
|
||||||
<div class="card m-xs-b-4">
|
<div class="card m-xs-b-4">
|
||||||
<div class="card-section">
|
<div class="card-section">
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<h2 class="m-xs-b-3 text-base wt-medium text-dark-soft">Drafts</h2>
|
<h2 class="m-xs-b-3 text-base wt-medium text-dark-soft">Drafts</h2>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@foreach ($concerts->reject->isPublished() as $concert)
|
@foreach ($unpublishedConcerts as $concert)
|
||||||
<div class="col-xs-12 col-lg-4">
|
<div class="col-xs-12 col-lg-4">
|
||||||
<div class="card m-xs-b-4">
|
<div class="card m-xs-b-4">
|
||||||
<div class="card-section">
|
<div class="card-section">
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace Tests\Feature\Backstage;
|
|||||||
|
|
||||||
use App\User;
|
use App\User;
|
||||||
use App\Concert;
|
use App\Concert;
|
||||||
|
use ConcertFactory;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use PHPUnit\Framework\Assert;
|
use PHPUnit\Framework\Assert;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
@@ -44,17 +45,30 @@ class ViewConcertListTest extends TestCase
|
|||||||
$this->disableExceptionHandling();
|
$this->disableExceptionHandling();
|
||||||
$user = factory(User::class)->create();
|
$user = factory(User::class)->create();
|
||||||
$otherUser = factory(User::class)->create();
|
$otherUser = factory(User::class)->create();
|
||||||
$concertA = factory(Concert::class)->create(['user_id' => $user->id]);
|
$publishedConcertA = ConcertFactory::createPublished(['user_id' => $user->id]);
|
||||||
$concertB = factory(Concert::class)->create(['user_id' => $user->id]);
|
$publishedConcertB = ConcertFactory::createPublished(['user_id' => $otherUser->id]);
|
||||||
$concertC = factory(Concert::class)->create(['user_id' => $otherUser->id]);
|
$publishedConcertC = ConcertFactory::createPublished(['user_id' => $user->id]);
|
||||||
$concertD = factory(Concert::class)->create(['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 = $this->actingAs($user)->get('/backstage/concerts');
|
||||||
|
|
||||||
$response->assertStatus(200);
|
$response->assertStatus(200);
|
||||||
$response->data('concerts')->assertContains($concertA);
|
|
||||||
$response->data('concerts')->assertContains($concertB);
|
$response->data('publishedConcerts')->assertContains($publishedConcertA);
|
||||||
$response->data('concerts')->assertContains($concertD);
|
$response->data('publishedConcerts')->assertNotContains($publishedConcertB);
|
||||||
$response->data('concerts')->assertNotContains($concertC);
|
$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