diff --git a/resources/views/admin/users/index.blade.php b/resources/views/admin/users/index.blade.php
index 4379bab..137e5e2 100644
--- a/resources/views/admin/users/index.blade.php
+++ b/resources/views/admin/users/index.blade.php
@@ -6,7 +6,7 @@
Users
Click name to edit
- New User
+ New User
@@ -21,7 +21,7 @@
@foreach($users as $user)
- {{ $user->full_name(true) }}
+ {{ $user->full_name(true) }}
{{ $user->has_school() ? $user->school->name : ' ' }}
{{ $user->email }}
{{ $user->cell_phone }}
diff --git a/routes/admin.php b/routes/admin.php
index 95a7879..9c0c26a 100644
--- a/routes/admin.php
+++ b/routes/admin.php
@@ -108,11 +108,11 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('admin/')->
// Admin User Routes
Route::prefix('users')->controller(\App\Http\Controllers\Admin\UserController::class)->group(function () {
- Route::get('/', 'index');
- Route::get('/create', 'create');
- Route::post('/', 'store');
- Route::get('/{user}/edit', 'edit');
- Route::patch('/{user}', 'update');
- Route::delete('/{user}', 'destroy');
+ Route::get('/', 'index')->name('admin.users.index');
+ Route::get('/create', 'create')->name('admin.users.create');
+ Route::post('/', 'store')->name('admin.users.store');
+ Route::get('/{user}/edit', 'edit')->name('admin.users.edit');
+ Route::patch('/{user}', 'update')->name('admin.users.update');
+ Route::delete('/{user}', 'destroy')->name('admin.users.destroy');
});
});
diff --git a/tests/Feature/Pages/Admin/DashboardTest.php b/tests/Feature/Pages/Admin/DashboardTest.php
index fa4d779..1b4435a 100644
--- a/tests/Feature/Pages/Admin/DashboardTest.php
+++ b/tests/Feature/Pages/Admin/DashboardTest.php
@@ -13,7 +13,7 @@ it('only shows for an admin user', function () {
$nonAdminUser = User::factory()->create();
// Act & Assert
- get(route('dashboard'))->assertRedirect(route('home'));
+ get(route('admin.dashboard'))->assertRedirect(route('home'));
actingAs($adminUser);
get(route('admin.dashboard'))->assertOk();
actingAs($nonAdminUser);
diff --git a/tests/Feature/Pages/Admin/UsersIndexTest.php b/tests/Feature/Pages/Admin/UsersIndexTest.php
new file mode 100644
index 0000000..c9198ff
--- /dev/null
+++ b/tests/Feature/Pages/Admin/UsersIndexTest.php
@@ -0,0 +1,78 @@
+adminUser = User::factory()->admin()->create();
+ $this->nonAdminUser = User::factory()->create();
+ $this->tabUser = User::factory()->tab()->create();
+ $this->users = User::factory(3)->create();
+ $this->schools = [];
+ foreach ($this->users as $user) {
+ $school = School::factory()->create();
+ $user->school_id = $school->id;
+ $user->save();
+ }
+});
+
+it('only shows for an admin user', function () {
+ // Act & Assert
+ $checkRoute = 'admin.users.index';
+ get(route($checkRoute))->assertRedirect(route('home'));
+ actingAs($this->adminUser);
+ get(route($checkRoute))->assertOk();
+ actingAs($this->nonAdminUser);
+ get(route($checkRoute))->assertRedirect(route('dashboard'));
+});
+
+it('has a new user link', function () {
+ // Arrange
+ actingAs($this->adminUser);
+ // Act & Assert
+ get(route('admin.users.index'))
+ ->assertOk()
+ ->assertSeeInOrder([
+ 'href=',
+ route('admin.users.create'),
+ 'New User',
+ '/a',
+ ]);
+});
+
+it('shows user data', function () {
+ // Arrange
+ actingAs($this->adminUser);
+ // Act & Assert
+ $response = get(route('admin.users.index'));
+ $response->assertOk();
+ foreach ($this->users as $user) {
+ $response->assertSeeInOrder([
+ $user->full_name(true),
+ $user->school->name,
+ $user->email,
+ $user->cell_phone,
+ $user->judging_preference,
+ ]);
+ }
+});
+
+it('has an edit link for each user', function () {
+ // Arrange
+ actingAs($this->adminUser);
+ // Act & Assert
+ $response = get(route('admin.users.index'));
+ $response->assertOk();
+ $response->assertSee(route('admin.users.edit', $this->adminUser));
+ $response->assertSee(route('admin.users.edit', $this->nonAdminUser));
+ $response->assertSee(route('admin.users.edit', $this->tabUser));
+ foreach ($this->users as $user) {
+ $response->assertSee(route('admin.users.edit', $user));
+ }
+});