actingAs(User::factory()->create()) ->get(route('users.create')) ->assertForbidden(); } public function testPageRenders() { $this->actingAs(User::factory()->createUsers()->create()) ->get(route('users.create')) ->assertOk(); } public function testCanCreateUser() { Notification::fake(); $response = $this->actingAs(User::factory()->createUsers()->viewUsers()->create()) ->from(route('users.index')) ->post(route('users.store'), [ 'first_name' => 'Test First Name', 'last_name' => 'Test Last Name', 'username' => 'testuser', 'password' => 'testpassword1235!!', 'password_confirmation' => 'testpassword1235!!', 'activated' => '1', 'email' => 'foo@example.org', 'notes' => 'Test Note', ]) ->assertSessionHasNoErrors() ->assertStatus(302) ->assertRedirect(route('users.index')); $this->assertDatabaseHas('users', [ 'first_name' => 'Test First Name', 'last_name' => 'Test Last Name', 'username' => 'testuser', 'activated' => '1', 'email' => 'foo@example.org', 'notes' => 'Test Note', ]); Notification::assertNothingSent(); $this->followRedirects($response)->assertSee('Success'); } public function testCanCreateAndNotifyUser() { Notification::fake(); $response = $this->actingAs(User::factory()->createUsers()->viewUsers()->create()) ->from(route('users.index')) ->post(route('users.store'), [ 'first_name' => 'Test First Name', 'last_name' => 'Test Last Name', 'username' => 'testuser', 'password' => 'testpassword1235!!', 'password_confirmation' => 'testpassword1235!!', 'send_welcome' => '1', 'activated' => '1', 'email' => 'foo@example.org', 'notes' => 'Test Note', ]) ->assertSessionHasNoErrors() ->assertStatus(302) ->assertRedirect(route('users.index')); $this->assertDatabaseHas('users', [ 'first_name' => 'Test First Name', 'last_name' => 'Test Last Name', 'username' => 'testuser', 'activated' => '1', 'email' => 'foo@example.org', 'notes' => 'Test Note', ]); $user = User::where('username', 'testuser')->first(); Notification::assertSentTo($user, WelcomeNotification::class); $this->followRedirects($response)->assertSee('Success'); } }