browse(function (PterodactylBrowser $browser) { $browser->loginAs($this->user) ->visit(new AccountPage) ->assertValue('@email', $this->user->email) ->type('@email', 'new.email@example.com') ->type('@password', 'Password123') ->click('@submit') ->waitFor('@@success') ->assertSeeIn('@@success', trans('dashboard/account.email.updated')) ->assertValue('@email', 'new.email@example.com'); $this->assertDatabaseHas('users', ['id' => $this->user->id, 'email' => 'new.email@example.com']); }); } /** * Test that the validation error message shows up when an invalid email is entered. */ public function testInvalidEmailShowsErrors() { $this->browse(function (PterodactylBrowser $browser) { $browser->loginAs($this->user) ->visit(new AccountPage) ->assertMissing('@email ~ .input-help.error') ->type('@email', 'admin') ->assertVisible('@email ~ .input-help.error') ->assertSeeIn('@email ~ .input-help.error', 'The email field must be a valid email.') ->type('@email', 'admin@example.com') ->assertMissing('@email ~ .input-help.error'); }); } /** * Test that entering the wrong password for an account returns an error. */ public function testInvalidPasswordShowsError() { $this->browse(function (PterodactylBrowser $browser) { $browser->loginAs($this->user) ->visit(new AccountPage) ->type('@email', 'new.email@example.com') ->click('@submit') ->assertFocused('@password') ->type('@password', 'test1234') ->click('@submit') ->waitFor('@@error') ->assertSeeIn('@@error', trans('validation.internal.invalid_password')) ->assertValue('@email', 'new.email@example.com'); $this->assertDatabaseMissing('users', ['id' => $this->user->id, 'email' => 'new.email@example.com']); }); } }