v7.0.0-beta.2 release

This commit is contained in:
HeuJung
2026-04-20 20:37:49 +09:00
parent 6595fd0eb5
commit fa8eba7a0d
1165 changed files with 107118 additions and 762127 deletions
@@ -2,69 +2,78 @@
namespace Tests\Unit\ActivityLog\Drivers;
use App\ActivityLog\Drivers\NullActivityLogDriver;
use App\Enums\ActivityLogType;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Log;
use Tests\TestCase;
/**
* NullActivityLogDriver 테스트
* Null 활동 로그 동작 테스트 (config('activity_log.enabled') = false 기반)
*
* Null 드라이버가 아무 동작도 하지 않는지 검증합니다.
* 구버전 NullActivityLogDriver 클래스는 폐기되었고,
* 현재는 config('activity_log.enabled')가 false이면 ActivityLogHandler::write()가
* DB 저장을 건너뛰는 방식으로 비활성화 동작이 제공됩니다.
* 본 테스트는 비활성화 시 어떤 로그도 DB에 저장되지 않는지 검증합니다.
*/
class NullActivityLogDriverTest extends TestCase
{
use RefreshDatabase;
private NullActivityLogDriver $driver;
protected function setUp(): void
{
parent::setUp();
$this->driver = new NullActivityLogDriver;
config(['activity_log.enabled' => false]);
}
/**
* 드라이버 이름이 'null'인지 확인
* 비활성화 시 로그가 데이터베이스에 저장되지 않는지 확인
*/
public function test_driver_name_is_null(): void
public function test_disabled_log_does_not_save_to_database(): void
{
$this->assertEquals('null', $this->driver->getName());
}
/**
* log()가 null을 반환하는지 확인
*/
public function test_log_returns_null(): void
{
$result = $this->driver->log(
ActivityLogType::Admin,
'test.action',
'Test description'
);
$this->assertNull($result);
}
/**
* log()가 데이터베이스에 아무것도 저장하지 않는지 확인
*/
public function test_log_does_not_save_to_database(): void
{
$user = User::factory()->create();
$this->driver->log(
ActivityLogType::Admin,
'test.action',
'Test description',
$user,
['key' => 'value'],
$user->id,
'127.0.0.1',
'Test Agent'
);
Log::channel('activity')->info('test.action', [
'log_type' => ActivityLogType::Admin,
'description_key' => 'test.description',
]);
$this->assertDatabaseCount('activity_logs', 0);
}
/**
* 비활성화 시 모든 필드가 전달되어도 아무것도 저장되지 않는지 확인
*/
public function test_disabled_log_ignores_all_fields(): void
{
$user = User::factory()->create();
Log::channel('activity')->info('test.action', [
'log_type' => ActivityLogType::Admin,
'description_key' => 'test.description',
'loggable' => $user,
'properties' => ['key' => 'value'],
'user_id' => $user->id,
'ip_address' => '127.0.0.1',
'user_agent' => 'Test Agent',
]);
$this->assertDatabaseCount('activity_logs', 0);
}
/**
* 비활성화 → 활성화 토글이 정상 동작하는지 확인
*/
public function test_enabling_after_disabled_resumes_logging(): void
{
Log::channel('activity')->info('disabled.action', [
'log_type' => ActivityLogType::Admin,
]);
$this->assertDatabaseCount('activity_logs', 0);
config(['activity_log.enabled' => true]);
Log::channel('activity')->info('enabled.action', [
'log_type' => ActivityLogType::Admin,
]);
$this->assertDatabaseHas('activity_logs', ['action' => 'enabled.action']);
}
}