1
0
mirror of https://github.com/chylex/Lightning-Tracker.git synced 2025-07-27 16:59:08 +02:00

Add Acceptance::getDB and fix issues with tests (missing login refresh, code formatting)

This commit is contained in:
chylex 2020-09-06 19:24:36 +02:00
parent 30b28d4984
commit c7e9e8e6b6
3 changed files with 31 additions and 8 deletions

View File

@ -20,9 +20,12 @@ use Codeception\Actor;
* @SuppressWarnings(PHPMD) * @SuppressWarnings(PHPMD)
*/ */
class AcceptanceTester extends Actor{ class AcceptanceTester extends Actor{
use _generated\AcceptanceTesterActions; use _generated\AcceptanceTesterActions {
amOnPage as private amOnPageInternal;
}
private static array $tokens = []; private static array $tokens = [];
private string $page;
public function saveLoginToken(string $user): void{ public function saveLoginToken(string $user): void{
$this->seeCookie('logon', [ $this->seeCookie('logon', [
@ -31,7 +34,7 @@ class AcceptanceTester extends Actor{
'httponly' => true, 'httponly' => true,
'samesite' => 'Lax' 'samesite' => 'Lax'
]); ]);
$token = $this->grabCookie('logon'); $token = $this->grabCookie('logon');
$this->assertNotEmpty($token); $this->assertNotEmpty($token);
@ -49,5 +52,14 @@ class AcceptanceTester extends Actor{
'httponly' => true, 'httponly' => true,
'samesite' => 'Lax' 'samesite' => 'Lax'
]); ]);
if (isset($this->page)){
$this->amOnPage($this->page);
}
}
public function amOnPage(string $page): void{
$this->amOnPageInternal($page);
$this->page = $page;
} }
} }

View File

@ -9,11 +9,18 @@ namespace Helper;
use Codeception\Module; use Codeception\Module;
use Database\DB; use Database\DB;
use FilesystemIterator; use FilesystemIterator;
use PDO;
use RecursiveDirectoryIterator; use RecursiveDirectoryIterator;
use RecursiveIteratorIterator; use RecursiveIteratorIterator;
class Acceptance extends Module{ class Acceptance extends Module{
public function _beforeSuite($settings = []): void{ private static PDO $db;
public static function getDB(): PDO{
if (isset(self::$db)){
return self::$db;
}
define('DB_DRIVER', 'mysql'); define('DB_DRIVER', 'mysql');
define('DB_NAME', 'tracker_test'); define('DB_NAME', 'tracker_test');
define('DB_HOST', 'localhost'); define('DB_HOST', 'localhost');
@ -21,7 +28,11 @@ class Acceptance extends Module{
define('DB_PASSWORD', 'test'); define('DB_PASSWORD', 'test');
require __DIR__.'/../../../src/Database/DB.php'; require __DIR__.'/../../../src/Database/DB.php';
$db = DB::get(); return self::$db = DB::get();
}
public function _beforeSuite($settings = []): void{
$db = self::getDB();
$tables = [ $tables = [
'system_roles', 'system_roles',

View File

@ -25,16 +25,16 @@ class T001_Install_Cest{
private function reinstall(AcceptanceTester $I, string $conflict_resolution, string $input_email, string $result_email): void{ private function reinstall(AcceptanceTester $I, string $conflict_resolution, string $input_email, string $result_email): void{
$I->assertTrue(unlink(__DIR__.'/../../server/www/config.php')); $I->assertTrue(unlink(__DIR__.'/../../server/www/config.php'));
$I->amOnPage('/'); $I->amOnPage('/');
$this->fill($I, $input_email); $this->fill($I, $input_email);
$I->click('button[value=""]'); $I->click('button[value=""]');
$I->seeElement('#form-install-section[style="display:none"]'); $I->seeElement('#form-install-section[style="display:none"]');
$I->seeElement('#form-conflict-section:not([style])'); $I->seeElement('#form-conflict-section:not([style])');
$I->fillField('_Resolution', $conflict_resolution); $I->fillField('_Resolution', $conflict_resolution);
$I->click('button[value="ConflictConfirm"]'); $I->click('button[value="ConflictConfirm"]');
$I->see('Register', 'a[href="http://localhost/register"]'); $I->see('Register', 'a[href="http://localhost/register"]');
$I->seeInDatabase('users', [ $I->seeInDatabase('users', [
'name' => 'Admin', 'name' => 'Admin',