68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Pterodactyl\Tests\Browser\Processes\Dashboard;
 | |
| 
 | |
| use Pterodactyl\Tests\Browser\PterodactylBrowser;
 | |
| use Pterodactyl\Tests\Browser\Pages\Dashboard\AccountPage;
 | |
| 
 | |
| class AccountEmailProcessTest extends DashboardTestCase
 | |
| {
 | |
|     /**
 | |
|      * Test that an email address can be changed successfully.
 | |
|      */
 | |
|     public function testEmailCanBeChanged()
 | |
|     {
 | |
|         $this->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']);
 | |
|         });
 | |
|     }
 | |
| }
 | 
