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": {
"psr-4": {
"Core\\Tests\\": "tests/",
"Core\\TestCore\\": "tests/Fixtures/Core/TestCore/",
"App\\Custom\\": "tests/Fixtures/Custom/",
"Mod\\": "tests/Fixtures/Mod/",
"Plug\\": "tests/Fixtures/Plug/",
"Website\\": "tests/Fixtures/Website/"

View file

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

View file

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

View file

@ -15,6 +15,13 @@ class ActivityLogServiceTest extends TestCase
protected ActivityLogService $service;
protected function getPackageProviders($app): array
{
return array_merge(parent::getPackageProviders($app), [
\Spatie\Activitylog\ActivitylogServiceProvider::class,
]);
}
protected function setUp(): void
{
parent::setUp();
@ -29,6 +36,12 @@ class ActivityLogServiceTest extends TestCase
$app['config']->set('core.activity.enabled', true);
$app['config']->set('core.activity.log_name', 'test');
$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

View file

@ -53,6 +53,13 @@ class LogsActivityTraitTest extends TestCase
{
use RefreshDatabase;
protected function getPackageProviders($app): array
{
return array_merge(parent::getPackageProviders($app), [
\Spatie\Activitylog\ActivitylogServiceProvider::class,
]);
}
protected function setUp(): void
{
parent::setUp();
@ -81,6 +88,12 @@ class LogsActivityTraitTest extends TestCase
$app['config']->set('core.activity.log_name', 'default');
$app['config']->set('core.activity.include_workspace', true);
$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
@ -105,7 +118,7 @@ class LogsActivityTraitTest extends TestCase
$model = TestActivityModel::create(['name' => 'Original Name']);
$model->update(['name' => 'Updated Name']);
$activities = Activity::latest()->get();
$activities = Activity::orderBy('id', 'desc')->get();
$this->assertCount(2, $activities);

View file

@ -92,7 +92,7 @@ class ModuleRegistryTest extends TestCase
$listeners = $registry->getListenersFor(WebRoutesRegistering::class);
$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

View file

@ -55,7 +55,7 @@ class ModuleScannerTest extends TestCase
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->assertArrayHasKey(WebRoutesRegistering::class, $result);