78 lines
2.3 KiB
PHP
78 lines
2.3 KiB
PHP
<?php
|
|
|
|
use App\Models\Entry;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
|
use function Pest\Laravel\get;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
it('admin can see an entries index page', function () {
|
|
actAsAdmin();
|
|
get(route('admin.entries.index'))
|
|
->assertOk();
|
|
});
|
|
it('normal users cannot see entries index page', function () {
|
|
// Arrange
|
|
actAsNormal();
|
|
get(route('admin.entries.index'))
|
|
->assertRedirect(route('dashboard'));
|
|
// Act & Assert
|
|
});
|
|
it('does not allow guests to see the entries index page', function () {
|
|
// Arrange
|
|
get(route('admin.entries.index'))
|
|
->assertRedirect(route('home'));
|
|
});
|
|
it('shows entries on the index page', function () {
|
|
$entries = Entry::factory()->count(2)->create();
|
|
actAsAdmin();
|
|
$response = get(route('admin.entries.index'))
|
|
->assertOk();
|
|
foreach ($entries as $entry) {
|
|
$response
|
|
->assertSee($entry->id)
|
|
->assertSee($entry->audition->name)
|
|
->assertSee($entry->student->full_name())
|
|
->assertSee($entry->student->grade)
|
|
->assertSee($entry->school->name);
|
|
}
|
|
});
|
|
it('has a link to add a new entry', function () {
|
|
actAsAdmin();
|
|
get(route('admin.entries.index'))
|
|
->assertSee('New Entry')
|
|
->assertSee(route('admin.entries.create'));
|
|
});
|
|
it('has a link to edit each entry', function () {
|
|
$entries = Entry::factory()->count(2)->create();
|
|
actAsAdmin();
|
|
$response = get(route('admin.entries.index'))
|
|
->assertOk();
|
|
foreach ($entries as $entry) {
|
|
$response
|
|
->assertSee(route('admin.entries.edit', $entry));
|
|
}
|
|
});
|
|
//it('has pagination after 10 entries', function () {
|
|
// Entry::factory()->count(10)->create();
|
|
// actAsAdmin();
|
|
// get(route('admin.entries.index'))
|
|
// ->assertOk()
|
|
// ->assertDontSee('Previous')
|
|
// ->assertDontSee('Next');
|
|
// Entry::factory()->count(1)->create();
|
|
// get(route('admin.entries.index'))
|
|
// ->assertOk()
|
|
// ->assertSee('Next');
|
|
// get(route('admin.entries.index', ['page' => 2]))
|
|
// ->assertOk()
|
|
// ->assertSee('Previous')
|
|
// ->assertDontSee('Next');
|
|
// Entry::factory()->count(20)->create();
|
|
// get(route('admin.entries.index', ['page' => 2]))
|
|
// ->assertOk()
|
|
// ->assertSee('Previous')
|
|
// ->assertSee('Next');
|
|
//});
|