diff --git a/api/models/ChangeUsernameForm.php b/api/models/ChangeUsernameForm.php index 4333a07..b17095d 100644 --- a/api/models/ChangeUsernameForm.php +++ b/api/models/ChangeUsernameForm.php @@ -21,7 +21,7 @@ class ChangeUsernameForm extends PasswordProtectedForm { $account = new Account(); $account->username = $this->$attribute; if (!$account->validate(['username'])) { - $account->addErrors($account->getErrors('username')); + $this->addErrors($account->getErrors()); } } diff --git a/tests/codeception/api/functional/AccountsChangeUsernameCest.php b/tests/codeception/api/functional/AccountsChangeUsernameCest.php index e0b7805..bdc83f7 100644 --- a/tests/codeception/api/functional/AccountsChangeUsernameCest.php +++ b/tests/codeception/api/functional/AccountsChangeUsernameCest.php @@ -28,7 +28,7 @@ class AccountsChangeUsernameCest { } public function testChangeUsername(FunctionalTester $I, Scenario $scenario) { - $I->wantTo('change my password'); + $I->wantTo('change my nickname'); $I = new AccountSteps($scenario); $I->loggedInAsActiveAccount(); @@ -40,4 +40,20 @@ class AccountsChangeUsernameCest { ]); } + public function testChangeUsernameNotAvailable(FunctionalTester $I, Scenario $scenario) { + $I->wantTo('see, that nickname "in use" is not available'); + $I = new AccountSteps($scenario); + $I->loggedInAsActiveAccount(); + + $this->route->changeUsername('password_0', 'Jon'); + $I->canSeeResponseCodeIs(200); + $I->canSeeResponseIsJson(); + $I->canSeeResponseContainsJson([ + 'success' => false, + 'errors' => [ + 'username' => 'error.username_not_available', + ], + ]); + } + }