You've already forked Php-Template
chore: add log level configuration and enhance logger tests
Some checks failed
🧪✨ Tests Workflow / 🛡️ 🔒 Library Audit (push) Successful in 3m25s
🧪✨ Tests Workflow / 📝 ✨ Code Lint (push) Successful in 3m20s
🧪✨ Tests Workflow / 🛡️ 🔒 License Check (push) Successful in 3m29s
🧪✨ Tests Workflow / 🐙 🔍 Code Sniffer (push) Successful in 3m28s
🧪✨ Tests Workflow / 🧪 ✨ Database Migrations (push) Successful in 4m3s
🧪✨ Tests Workflow / 🧪 ✅ Unit Tests (push) Failing after 3m19s
Some checks failed
🧪✨ Tests Workflow / 🛡️ 🔒 Library Audit (push) Successful in 3m25s
🧪✨ Tests Workflow / 📝 ✨ Code Lint (push) Successful in 3m20s
🧪✨ Tests Workflow / 🛡️ 🔒 License Check (push) Successful in 3m29s
🧪✨ Tests Workflow / 🐙 🔍 Code Sniffer (push) Successful in 3m28s
🧪✨ Tests Workflow / 🧪 ✨ Database Migrations (push) Successful in 4m3s
🧪✨ Tests Workflow / 🧪 ✅ Unit Tests (push) Failing after 3m19s
This commit is contained in:
@@ -4,12 +4,18 @@ declare(strict_types=1);
|
||||
|
||||
namespace Siteworxpro\Tests\Log;
|
||||
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use Psr\Log\LogLevel;
|
||||
use Siteworxpro\App\Log\Logger;
|
||||
use Siteworxpro\Tests\Unit;
|
||||
|
||||
class LoggerTest extends Unit
|
||||
{
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
private function getLoggerWithBuffer(string $logLevel): array
|
||||
{
|
||||
$inputBuffer = fopen('php://memory', 'r+');
|
||||
@@ -21,6 +27,10 @@ class LoggerTest extends Unit
|
||||
return stream_get_contents($inputBuffer, -1, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
private function testLogLevel(string $level): void
|
||||
{
|
||||
[$logger, $inputBuffer] = $this->getLoggerWithBuffer($level);
|
||||
@@ -33,6 +43,10 @@ class LoggerTest extends Unit
|
||||
$this->assertEquals('value', $decoded['context']['key']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
private function testLogLevelEmpty(string $configLevel, string $logLevel): void
|
||||
{
|
||||
[$logger, $inputBuffer] = $this->getLoggerWithBuffer($configLevel);
|
||||
@@ -42,57 +56,101 @@ class LoggerTest extends Unit
|
||||
$this->assertEmpty($output);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsDebugMessageWhenLevelIsDebug(): void
|
||||
{
|
||||
$this->testLogLevel(LogLevel::DEBUG);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsInfoMessageWhenLevelIsInfo(): void
|
||||
{
|
||||
$this->testLogLevel(LogLevel::INFO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsWarningMessageWhenLevelIsWarning(): void
|
||||
{
|
||||
$this->testLogLevel(LogLevel::WARNING);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsErrorMessageWhenLevelIsError(): void
|
||||
{
|
||||
$this->testLogLevel(LogLevel::ERROR);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsCriticalMessageWhenLevelIsCritical(): void
|
||||
{
|
||||
$this->testLogLevel(LogLevel::CRITICAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsAlertMessageWhenLevelIsAlert(): void
|
||||
{
|
||||
$this->testLogLevel(LogLevel::ALERT);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsEmergencyMessageWhenLevelIsEmergency(): void
|
||||
{
|
||||
$this->testLogLevel(LogLevel::EMERGENCY);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsNoticeMessageWhenLevelIsNotice(): void
|
||||
{
|
||||
$this->testLogLevel(LogLevel::NOTICE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testDoesNotLogWhenMinimumLevelIsInfo(): void
|
||||
{
|
||||
$this->testLogLevelEmpty(LogLevel::INFO, LogLevel::DEBUG);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testDoesNotLogWhenMinimumLevelIsWarning(): void
|
||||
{
|
||||
$this->testLogLevelEmpty(LogLevel::WARNING, LogLevel::INFO);
|
||||
$this->testLogLevelEmpty(LogLevel::WARNING, LogLevel::DEBUG);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ContainerExceptionInterface
|
||||
*/
|
||||
public function testDoesNotLogWhenMinimumLevelIsError(): void
|
||||
{
|
||||
$this->testLogLevelEmpty(LogLevel::ERROR, LogLevel::DEBUG);
|
||||
@@ -100,12 +158,20 @@ class LoggerTest extends Unit
|
||||
$this->testLogLevelEmpty(LogLevel::ERROR, LogLevel::WARNING);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testDoesNotLogWhenMinimumLevelIsNotice(): void
|
||||
{
|
||||
$this->testLogLevelEmpty(LogLevel::NOTICE, LogLevel::DEBUG);
|
||||
$this->testLogLevelEmpty(LogLevel::NOTICE, LogLevel::INFO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsMessageWithEmptyContext(): void
|
||||
{
|
||||
[$logger, $buffer] = $this->getLoggerWithBuffer(LogLevel::INFO);
|
||||
@@ -118,6 +184,10 @@ class LoggerTest extends Unit
|
||||
$this->assertEquals('Message without context', $decoded['message']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsMessageWithComplexContext(): void
|
||||
{
|
||||
[$logger, $buffer] = $this->getLoggerWithBuffer(LogLevel::INFO);
|
||||
@@ -135,6 +205,10 @@ class LoggerTest extends Unit
|
||||
$this->assertEquals('value', $decoded['context']['nested']['key']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function testLogsStringableMessage(): void
|
||||
{
|
||||
[$logger, $buffer] = $this->getLoggerWithBuffer(LogLevel::INFO);
|
||||
|
||||
Reference in New Issue
Block a user