login()->loginNami(); $user = User::factory()->create(); $this->patchJson(route('user.update', ['user' => $user]), UserRequestFactory::new()->name('Max Muster')->email('max@muster.de')->create()) ->assertOk(); $this->assertDatabaseHas('users', [ 'email' => 'max@muster.de', 'firstname' => 'Max', 'lastname' => 'Muster', ]); $this->assertDatabaseCount('users', 2); } public function testItCannotUseAGivenMailAddress(): void { $this->login()->loginNami(); $jane = User::factory()->email('jane@muster.de')->create(); $user = User::factory()->create(); $this->patchJson(route('user.update', ['user' => $user]), UserRequestFactory::new()->email('jane@muster.de')->create()) ->assertJsonValidationErrors('email'); $this->patchJson(route('user.update', ['user' => $jane]), UserRequestFactory::new()->email('jane@muster.de')->create()) ->assertJsonMissingValidationErrors('email'); } public function testItNeedsNameAndEmail(): void { Mail::fake(); $this->login()->loginNami(); $user = User::factory()->create(); User::factory()->email('jane@doe.de')->create(); $this->patchJson(route('user.update', ['user' => $user]), UserRequestFactory::new()->name('')->email('max@muster.de')->create())->assertJsonValidationErrors('firstname'); $this->patchJson(route('user.update', ['user' => $user]), UserRequestFactory::new()->name('Max Muster')->email('maxusterde')->create())->assertJsonValidationErrors('email'); $this->patchJson(route('user.update', ['user' => $user]), UserRequestFactory::new()->name('Max Muster')->email('')->create())->assertJsonValidationErrors('email'); $this->patchJson(route('user.update', ['user' => $user]), UserRequestFactory::new()->email('jane@doe.de')->create())->assertJsonValidationErrors('email'); } }