mirror of
https://github.com/elyby/accounts.git
synced 2025-05-31 14:11:46 +05:30
Добавлены экшены в контроллер и 1 тест (больше не успел)
This commit is contained in:
@ -30,4 +30,9 @@ class AccountsRoute extends BasePage {
|
||||
]);
|
||||
}
|
||||
|
||||
public function changeEmailInitialize() {
|
||||
$this->route = ['accounts/change-email-initialize'];
|
||||
$this->actor->sendPOST($this->getUrl());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
<?php
|
||||
namespace tests\codeception\api;
|
||||
|
||||
use Codeception\Actor;
|
||||
use InvalidArgumentException;
|
||||
use tests\codeception\api\_pages\AuthenticationRoute;
|
||||
|
||||
/**
|
||||
@ -18,17 +20,23 @@ use tests\codeception\api\_pages\AuthenticationRoute;
|
||||
*
|
||||
* @SuppressWarnings(PHPMD)
|
||||
*/
|
||||
class FunctionalTester extends \Codeception\Actor {
|
||||
class FunctionalTester extends Actor {
|
||||
use _generated\FunctionalTesterActions;
|
||||
|
||||
public function loggedInAsActiveAccount() {
|
||||
$I = $this;
|
||||
$route = new AuthenticationRoute($I);
|
||||
$route->login('Admin', 'password_0');
|
||||
$I->canSeeResponseIsJson();
|
||||
$I->canSeeResponseJsonMatchesJsonPath('$.jwt');
|
||||
$jwt = $I->grabDataFromResponseByJsonPath('$.jwt')[0];
|
||||
$I->amBearerAuthenticated($jwt);
|
||||
public function loggedInAsActiveAccount($login = null, $password = null) {
|
||||
$route = new AuthenticationRoute($this);
|
||||
if ($login === null) {
|
||||
$route->login('Admin', 'password_0');
|
||||
} elseif ($login !== null && $password !== null) {
|
||||
$route->login($login, $password);
|
||||
} else {
|
||||
throw new InvalidArgumentException('login and password should be presented both.');
|
||||
}
|
||||
|
||||
$this->canSeeResponseIsJson();
|
||||
$this->canSeeResponseJsonMatchesJsonPath('$.jwt');
|
||||
$jwt = $this->grabDataFromResponseByJsonPath('$.jwt')[0];
|
||||
$this->amBearerAuthenticated($jwt);
|
||||
}
|
||||
|
||||
public function notLoggedIn() {
|
||||
|
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
namespace tests\codeception\api\functional;
|
||||
|
||||
use Codeception\Specify;
|
||||
use tests\codeception\api\_pages\AccountsRoute;
|
||||
use tests\codeception\api\FunctionalTester;
|
||||
|
||||
class AccountsChangeEmailInitializeCest {
|
||||
|
||||
/**
|
||||
* @var AccountsRoute
|
||||
*/
|
||||
private $route;
|
||||
|
||||
public function _before(FunctionalTester $I) {
|
||||
$this->route = new AccountsRoute($I);
|
||||
}
|
||||
|
||||
public function testChangeEmailInitialize(FunctionalTester $I) {
|
||||
$I->wantTo('send current email confirmation');
|
||||
$I->loggedInAsActiveAccount();
|
||||
|
||||
$this->route->changeEmailInitialize();
|
||||
$I->canSeeResponseCodeIs(200);
|
||||
$I->canSeeResponseIsJson();
|
||||
$I->canSeeResponseContainsJson([
|
||||
'success' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
public function testChangeEmailWithOldPasswordStrategy(FunctionalTester $I) {
|
||||
$I->wantTo('see, that account use old account password hash strategy');
|
||||
$I->loggedInAsActiveAccount('AccWithOldPassword', '12345678');
|
||||
|
||||
$this->route->changeEmailInitialize();
|
||||
$I->canSeeResponseCodeIs(200);
|
||||
$I->canSeeResponseIsJson();
|
||||
$I->canSeeResponseContainsJson([
|
||||
'success' => false,
|
||||
'errors' => [
|
||||
'email' => 'error.old_hash_strategy',
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user