From 6fdf123f9f61566a0791af762358cffa45b709a7 Mon Sep 17 00:00:00 2001 From: Yasen Pramatarov Date: Fri, 25 Apr 2025 18:30:24 +0300 Subject: [PATCH] Fixes tests --- .../Middleware/RateLimitMiddlewareTest.php | 4 +-- tests/Unit/Classes/LogTest.php | 36 +++++++++---------- tests/Unit/Classes/RateLimiterTest.php | 4 +-- tests/Unit/Classes/UserRegisterTest.php | 4 +-- tests/Unit/Classes/UserTest.php | 4 +-- tests/phpunit.xml | 8 +++-- tests/setup_test_db.sql | 35 ++++++++++++++++++ 7 files changed, 67 insertions(+), 28 deletions(-) create mode 100644 tests/setup_test_db.sql diff --git a/tests/Feature/Middleware/RateLimitMiddlewareTest.php b/tests/Feature/Middleware/RateLimitMiddlewareTest.php index 8675b2f..d2deca8 100644 --- a/tests/Feature/Middleware/RateLimitMiddlewareTest.php +++ b/tests/Feature/Middleware/RateLimitMiddlewareTest.php @@ -29,8 +29,8 @@ class RateLimitMiddlewareTest extends TestCase 'type' => 'mariadb', 'host' => $host, 'port' => '3306', - 'dbname' => 'totalmeet_test', - 'user' => 'test_totalmeet', + 'dbname' => 'jilo_test', + 'user' => 'test_jilo', 'password' => $password ]); diff --git a/tests/Unit/Classes/LogTest.php b/tests/Unit/Classes/LogTest.php index 9977d47..7c96c67 100644 --- a/tests/Unit/Classes/LogTest.php +++ b/tests/Unit/Classes/LogTest.php @@ -11,47 +11,47 @@ use PHPUnit\Framework\TestCase; */ class TestLogger { private $db; - + public function __construct($database) { $this->db = $database->getConnection(); } - + public function insertLog($userId, $message, $scope = 'user') { try { $sql = 'INSERT INTO log (user_id, scope, message) VALUES (:user_id, :scope, :message)'; - + $query = $this->db->prepare($sql); $query->execute([ ':user_id' => $userId, ':scope' => $scope, ':message' => $message, ]); - + return true; - + } catch (Exception $e) { return $e->getMessage(); } } - + public function readLog($userId, $scope, $offset = 0, $items_per_page = '', $filters = []) { $params = []; $where_clauses = []; - + // Base query with user join $base_sql = 'SELECT l.*, u.username FROM log l LEFT JOIN user u ON l.user_id = u.id'; - + // Add scope condition if ($scope === 'user') { $where_clauses[] = 'l.user_id = :user_id'; $params[':user_id'] = $userId; } - + // Add time range filters if specified if (!empty($filters['from_time'])) { $where_clauses[] = 'l.time >= :from_time'; @@ -61,37 +61,37 @@ class TestLogger { $where_clauses[] = 'l.time <= :until_time'; $params[':until_time'] = $filters['until_time'] . ' 23:59:59'; } - + // Add message search if specified if (!empty($filters['message'])) { $where_clauses[] = 'l.message LIKE :message'; $params[':message'] = '%' . $filters['message'] . '%'; } - + // Add user ID search if specified if (!empty($filters['id'])) { $where_clauses[] = 'l.user_id = :search_user_id'; $params[':search_user_id'] = $filters['id']; } - + // Combine WHERE clauses $sql = $base_sql; if (!empty($where_clauses)) { $sql .= ' WHERE ' . implode(' AND ', $where_clauses); } - + // Add ordering $sql .= ' ORDER BY l.time DESC'; - + // Add pagination if ($items_per_page) { $items_per_page = (int)$items_per_page; $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; } - + $query = $this->db->prepare($sql); $query->execute($params); - + return $query->fetchAll(PDO::FETCH_ASSOC); } } @@ -115,8 +115,8 @@ class LogTest extends TestCase 'type' => 'mariadb', 'host' => $host, 'port' => '3306', - 'dbname' => 'totalmeet_test', - 'user' => 'test_totalmeet', + 'dbname' => 'jilo_test', + 'user' => 'test_jilo', 'password' => $password ]); diff --git a/tests/Unit/Classes/RateLimiterTest.php b/tests/Unit/Classes/RateLimiterTest.php index 9f425fc..df5994d 100644 --- a/tests/Unit/Classes/RateLimiterTest.php +++ b/tests/Unit/Classes/RateLimiterTest.php @@ -24,8 +24,8 @@ class RateLimiterTest extends TestCase 'type' => 'mariadb', 'host' => $host, 'port' => '3306', - 'dbname' => 'totalmeet_test', - 'user' => 'test_totalmeet', + 'dbname' => 'jilo_test', + 'user' => 'test_jilo', 'password' => $password ]); diff --git a/tests/Unit/Classes/UserRegisterTest.php b/tests/Unit/Classes/UserRegisterTest.php index f9292bb..f27726b 100644 --- a/tests/Unit/Classes/UserRegisterTest.php +++ b/tests/Unit/Classes/UserRegisterTest.php @@ -25,8 +25,8 @@ class UserRegisterTest extends TestCase 'type' => 'mariadb', 'host' => $host, 'port' => '3306', - 'dbname' => 'totalmeet_test', - 'user' => 'test_totalmeet', + 'dbname' => 'jilo_test', + 'user' => 'test_jilo', 'password' => $password ]); diff --git a/tests/Unit/Classes/UserTest.php b/tests/Unit/Classes/UserTest.php index e3af501..53fe6a6 100644 --- a/tests/Unit/Classes/UserTest.php +++ b/tests/Unit/Classes/UserTest.php @@ -25,8 +25,8 @@ class UserTest extends TestCase 'type' => 'mariadb', 'host' => $host, 'port' => '3306', - 'dbname' => 'totalmeet_test', - 'user' => 'test_totalmeet', + 'dbname' => 'jilo_test', + 'user' => 'test_jilo', 'password' => $password ]); diff --git a/tests/phpunit.xml b/tests/phpunit.xml index 83828f8..df55dd1 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -26,7 +26,11 @@ - - + + + + + + diff --git a/tests/setup_test_db.sql b/tests/setup_test_db.sql new file mode 100644 index 0000000..d403b05 --- /dev/null +++ b/tests/setup_test_db.sql @@ -0,0 +1,35 @@ +-- Create test database if not exists +CREATE DATABASE IF NOT EXISTS jilo_test; +USE jilo_test; + +-- Create rate limiter table if not exists +CREATE TABLE IF NOT EXISTS security_rate_page ( + id INT PRIMARY KEY AUTO_INCREMENT, + ip_address VARCHAR(45) NOT NULL, + endpoint VARCHAR(255) NOT NULL, + request_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- Create security_ip_whitelist table if not exists +CREATE TABLE IF NOT EXISTS security_ip_whitelist ( + id INT PRIMARY KEY AUTO_INCREMENT, + ip_address VARCHAR(45) NOT NULL UNIQUE, + is_network BOOLEAN DEFAULT 0, + description TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + created_by VARCHAR(255) +); + +-- Create security_ip_blacklist table if not exists +CREATE TABLE IF NOT EXISTS security_ip_blacklist ( + id INT PRIMARY KEY AUTO_INCREMENT, + ip_address VARCHAR(45) NOT NULL UNIQUE, + is_network BOOLEAN DEFAULT 0, + reason TEXT, + expiry_time TIMESTAMP NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + created_by VARCHAR(255) +); + +-- Grant permissions to root user +GRANT ALL PRIVILEGES ON jilo_test.* TO 'root'@'localhost';