fix: resolve all test failures

- Add ActivitylogServiceProvider to activity tests
- Configure spatie activitylog settings in test environment
- Use spatie's withoutLogs() for disabling activity logging
- Check if Livewire is available before registering components
- Add PSR-4 autoload mapping for test fixtures (Core\TestCore, App\Custom)
- Fix ModuleScannerTest to scan correct fixture path (Website not Mod)
- Fix ModuleRegistryTest assertion to check ['method'] key

All 197 tests now pass.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Snider 2026-01-29 22:42:19 +00:00
parent 0eea8b5408
commit 8d2ace98cf
7 changed files with 36 additions and 16 deletions

View file

@ -41,6 +41,8 @@
"autoload-dev": { "autoload-dev": {
"psr-4": { "psr-4": {
"Core\\Tests\\": "tests/", "Core\\Tests\\": "tests/",
"Core\\TestCore\\": "tests/Fixtures/Core/TestCore/",
"App\\Custom\\": "tests/Fixtures/Custom/",
"Mod\\": "tests/Fixtures/Mod/", "Mod\\": "tests/Fixtures/Mod/",
"Plug\\": "tests/Fixtures/Plug/", "Plug\\": "tests/Fixtures/Plug/",
"Website\\": "tests/Fixtures/Website/" "Website\\": "tests/Fixtures/Website/"

View file

@ -60,8 +60,10 @@ class Boot
// Register view namespace // Register view namespace
$event->views('core.activity', __DIR__.'/View/Blade'); $event->views('core.activity', __DIR__.'/View/Blade');
// Register Livewire component // Register Livewire component (only if Livewire is available)
Livewire::component('core.activity-feed', ActivityFeed::class); if (app()->bound('livewire')) {
Livewire::component('core.activity-feed', ActivityFeed::class);
}
// Bind service as singleton // Bind service as singleton
app()->singleton(ActivityLogService::class); app()->singleton(ActivityLogService::class);

View file

@ -223,16 +223,6 @@ trait LogsActivity
*/ */
public static function withoutActivityLogging(callable $callback): mixed public static function withoutActivityLogging(callable $callback): mixed
{ {
$previousState = activity()->isEnabled(); return activity()->withoutLogs($callback);
activity()->disableLogging();
try {
return $callback();
} finally {
if ($previousState) {
activity()->enableLogging();
}
}
} }
} }

View file

@ -15,6 +15,13 @@ class ActivityLogServiceTest extends TestCase
protected ActivityLogService $service; protected ActivityLogService $service;
protected function getPackageProviders($app): array
{
return array_merge(parent::getPackageProviders($app), [
\Spatie\Activitylog\ActivitylogServiceProvider::class,
]);
}
protected function setUp(): void protected function setUp(): void
{ {
parent::setUp(); parent::setUp();
@ -29,6 +36,12 @@ class ActivityLogServiceTest extends TestCase
$app['config']->set('core.activity.enabled', true); $app['config']->set('core.activity.enabled', true);
$app['config']->set('core.activity.log_name', 'test'); $app['config']->set('core.activity.log_name', 'test');
$app['config']->set('core.activity.retention_days', 90); $app['config']->set('core.activity.retention_days', 90);
// Set up spatie activitylog config
$app['config']->set('activitylog.default_log_name', 'default');
$app['config']->set('activitylog.default_auth_driver', null);
$app['config']->set('activitylog.table_name', 'activities');
$app['config']->set('activitylog.activity_model', Activity::class);
} }
protected function defineDatabaseMigrations(): void protected function defineDatabaseMigrations(): void

View file

@ -53,6 +53,13 @@ class LogsActivityTraitTest extends TestCase
{ {
use RefreshDatabase; use RefreshDatabase;
protected function getPackageProviders($app): array
{
return array_merge(parent::getPackageProviders($app), [
\Spatie\Activitylog\ActivitylogServiceProvider::class,
]);
}
protected function setUp(): void protected function setUp(): void
{ {
parent::setUp(); parent::setUp();
@ -81,6 +88,12 @@ class LogsActivityTraitTest extends TestCase
$app['config']->set('core.activity.log_name', 'default'); $app['config']->set('core.activity.log_name', 'default');
$app['config']->set('core.activity.include_workspace', true); $app['config']->set('core.activity.include_workspace', true);
$app['config']->set('core.activity.default_events', ['created', 'updated', 'deleted']); $app['config']->set('core.activity.default_events', ['created', 'updated', 'deleted']);
// Set up spatie activitylog config
$app['config']->set('activitylog.default_log_name', 'default');
$app['config']->set('activitylog.default_auth_driver', null);
$app['config']->set('activitylog.table_name', 'activities');
$app['config']->set('activitylog.activity_model', Activity::class);
} }
protected function defineDatabaseMigrations(): void protected function defineDatabaseMigrations(): void
@ -105,7 +118,7 @@ class LogsActivityTraitTest extends TestCase
$model = TestActivityModel::create(['name' => 'Original Name']); $model = TestActivityModel::create(['name' => 'Original Name']);
$model->update(['name' => 'Updated Name']); $model->update(['name' => 'Updated Name']);
$activities = Activity::latest()->get(); $activities = Activity::orderBy('id', 'desc')->get();
$this->assertCount(2, $activities); $this->assertCount(2, $activities);

View file

@ -92,7 +92,7 @@ class ModuleRegistryTest extends TestCase
$listeners = $registry->getListenersFor(WebRoutesRegistering::class); $listeners = $registry->getListenersFor(WebRoutesRegistering::class);
$this->assertArrayHasKey('Mod\\Example\\Boot', $listeners); $this->assertArrayHasKey('Mod\\Example\\Boot', $listeners);
$this->assertEquals('onWebRoutes', $listeners['Mod\\Example\\Boot']); $this->assertEquals('onWebRoutes', $listeners['Mod\\Example\\Boot']['method']);
} }
public function test_get_events_returns_registered_events(): void public function test_get_events_returns_registered_events(): void

View file

@ -55,7 +55,7 @@ class ModuleScannerTest extends TestCase
public function test_scan_finds_modules_in_website_path(): void public function test_scan_finds_modules_in_website_path(): void
{ {
$result = $this->scanner->scan([$this->getFixturePath('Mod')]); $result = $this->scanner->scan([$this->getFixturePath('Website')]);
$this->assertIsArray($result); $this->assertIsArray($result);
$this->assertArrayHasKey(WebRoutesRegistering::class, $result); $this->assertArrayHasKey(WebRoutesRegistering::class, $result);