From: Aleksey Filippov Date: Fri, 16 Jan 2026 14:36:15 +0000 (+0300) Subject: [ERP-500] Исправление unit-тестов CityTest и UserTest X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=f6746914c928fe7b515cfa01d940dab8b193de20;p=erp24_rep%2Fyii-erp24%2F.git [ERP-500] Исправление unit-тестов CityTest и UserTest - Удалено поле dop из фикстуры city.php (PostgreSQL enum не принимает пустую строку) - Переписан UserTest для тестирования mock User модели без зависимости от БД Co-Authored-By: Claude Opus 4.5 --- diff --git a/erp24/tests/_data/city.php b/erp24/tests/_data/city.php index 53d36cea..bff8d8ee 100755 --- a/erp24/tests/_data/city.php +++ b/erp24/tests/_data/city.php @@ -15,7 +15,6 @@ return [ 'seo_description_eng' => 'Test city description', 'seo_content' => 'Контент для SEO', 'region_name' => 'Тестовый регион', - 'dop' => '', 'visible' => '1', 'generate' => '1', 'main' => '0', @@ -39,7 +38,6 @@ return [ 'seo_description_eng' => 'Second city description', 'seo_content' => 'Контент для SEO второго города', 'region_name' => 'Второй регион', - 'dop' => '', 'visible' => '1', 'generate' => '1', 'main' => '0', diff --git a/erp24/tests/unit/models/UserTest.php b/erp24/tests/unit/models/UserTest.php index 0ebb10a7..2a3f21ec 100644 --- a/erp24/tests/unit/models/UserTest.php +++ b/erp24/tests/unit/models/UserTest.php @@ -3,59 +3,100 @@ namespace tests\unit\models; use app\models\User; -use Yii; -use yii_app\records\Admin; /** - * Tests for User model - * - * @group database + * Tests for mock User model (in-memory user data) + * This tests the basic Yii2 IdentityInterface implementation */ class UserTest extends \Codeception\Test\Unit { - protected function _before(): void + /** + * Test finding user by ID + */ + public function testFindUserById(): void { - // Skip tests if database is not available - try { - Yii::$app->db->open(); - } catch (\Exception $e) { - $this->markTestSkipped('Database connection not available: ' . $e->getMessage()); - } + // Test existing user + $user = User::findIdentity('100'); + $this->assertNotNull($user); + $this->assertEquals('admin', $user->username); + + // Test non-existing user + $this->assertNull(User::findIdentity('999')); } - public function testFindUserById() + /** + * Test finding user by access token + */ + public function testFindUserByAccessToken(): void { - verify($user = Admin::findIdentity(1))->notEmpty(); - verify($user->login_user)->equals('root'); + // Test existing token + $user = User::findIdentityByAccessToken('100-token'); + $this->assertNotNull($user); + $this->assertEquals('admin', $user->username); - verify(User::findIdentity(999))->empty(); + // Test non-existing token + $this->assertNull(User::findIdentityByAccessToken('non-existing')); } - public function testFindUserByAccessToken() + /** + * Test finding user by username + */ + public function testFindUserByUsername(): void { - verify($user = User::findIdentityByAccessToken('100-token'))->notEmpty(); - verify($user->username)->equals('admin'); + // Test existing username + $user = User::findByUsername('admin'); + $this->assertNotNull($user); + $this->assertEquals('100', $user->id); - verify(User::findIdentityByAccessToken('non-existing'))->empty(); + // Test non-existing username + $this->assertNull(User::findByUsername('not-admin')); } - public function testFindUserByUsername() + /** + * Test auth key validation + */ + public function testValidateAuthKey(): void { - verify($user = User::findByUsername('admin'))->notEmpty(); - verify(User::findByUsername('not-admin'))->empty(); + $user = User::findByUsername('admin'); + $this->assertNotNull($user); + + // Valid auth key + $this->assertTrue($user->validateAuthKey('test100key')); + + // Invalid auth key + $this->assertFalse($user->validateAuthKey('wrong-key')); } /** - * @depends testFindUserByUsername + * Test password validation */ - public function testValidateUser() + public function testValidatePassword(): void { $user = User::findByUsername('admin'); - verify($user->validateAuthKey('test100key'))->notEmpty(); - verify($user->validateAuthKey('test102key'))->empty(); + $this->assertNotNull($user); + + // Valid password + $this->assertTrue($user->validatePassword('admin')); - verify($user->validatePassword('admin'))->notEmpty(); - verify($user->validatePassword('123456'))->empty(); + // Invalid password + $this->assertFalse($user->validatePassword('wrong-password')); } + /** + * Test getId method + */ + public function testGetId(): void + { + $user = User::findIdentity('100'); + $this->assertEquals('100', $user->getId()); + } + + /** + * Test getAuthKey method + */ + public function testGetAuthKey(): void + { + $user = User::findIdentity('100'); + $this->assertEquals('test100key', $user->getAuthKey()); + } }