The Laravel 13 upgrade pulled Pint 1.27.1 to 1.29.3, which changed the laravel preset's default rules. composer lint and the CI lint job fail without this, so it is required rather than cosmetic. Formatting only, applied by `vendor/bin/pint`. The rules that fired were fully_qualified_strict_types, ordered_imports, single_blank_line_at_eof, unary_operator_spaces, not_operator_with_successor_space, braces_position, single_line_empty_body, single_line_after_imports and no_extra_blank_lines. Kept separate from the upgrade commit to keep that diff reviewable. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
72 lines
2.0 KiB
PHP
72 lines
2.0 KiB
PHP
<?php
|
|
|
|
use App\Livewire\Admin\AdminDashboard;
|
|
use App\Models\Share;
|
|
use App\Models\ShareFile;
|
|
use App\Models\User;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Livewire\Livewire;
|
|
|
|
test('admin dashboard requires authentication', function () {
|
|
$response = $this->get(route('admin.dashboard'));
|
|
|
|
$response->assertRedirect(route('login'));
|
|
});
|
|
|
|
test('non-admin user cannot access admin dashboard', function () {
|
|
$user = User::factory()->create(['is_admin' => false]);
|
|
|
|
$response = $this->actingAs($user)->get(route('admin.dashboard'));
|
|
|
|
$response->assertForbidden();
|
|
});
|
|
|
|
test('admin can access dashboard', function () {
|
|
$admin = User::query()->where('is_admin', true)->first();
|
|
|
|
$response = $this->actingAs($admin)->get(route('admin.dashboard'));
|
|
|
|
$response->assertOk();
|
|
});
|
|
|
|
test('admin dashboard shows stats', function () {
|
|
$admin = User::query()->where('is_admin', true)->first();
|
|
|
|
$share = Share::factory()->create(['total_size' => 1024]);
|
|
ShareFile::factory()->create(['share_id' => $share->id]);
|
|
|
|
$response = $this->actingAs($admin)->get(route('admin.dashboard'));
|
|
|
|
$response->assertOk();
|
|
$response->assertSee('Total Shares');
|
|
$response->assertSee('Active Shares');
|
|
$response->assertSee('Total Files');
|
|
$response->assertSee('Disk Usage');
|
|
});
|
|
|
|
test('admin can delete share', function () {
|
|
Storage::fake('shares');
|
|
|
|
$admin = User::query()->where('is_admin', true)->first();
|
|
|
|
$share = Share::factory()->create();
|
|
$shareId = $share->id;
|
|
|
|
Livewire::actingAs($admin)
|
|
->test(AdminDashboard::class)
|
|
->call('deleteShare', $shareId);
|
|
|
|
expect(Share::query()->find($shareId))->toBeNull();
|
|
});
|
|
|
|
test('admin dashboard shows shares table', function () {
|
|
$admin = User::query()->where('is_admin', true)->first();
|
|
|
|
$share = Share::factory()->create(['token' => 'testtoken12345678']);
|
|
|
|
$response = $this->actingAs($admin)->get(route('admin.dashboard'));
|
|
|
|
$response->assertOk();
|
|
$response->assertSee('testtoken12345678');
|
|
});
|