Add Fortify auth, Flux dark mode, demo seed, and Docker hot reload.

Protect recordings per user, seed a demo login on container start, and bind-mount the app with Vite HMR for local Compose development.
This commit is contained in:
ben
2026-08-12 18:38:53 +02:00
parent accb721811
commit bfcfc12f58
78 changed files with 3942 additions and 186 deletions
@@ -4,6 +4,7 @@ namespace Tests\Feature;
use App\Jobs\TranscribeRecording;
use App\Models\Recording;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Bus;
@@ -14,6 +15,16 @@ class RecordingDuplicateUploadTest extends TestCase
{
use RefreshDatabase;
protected User $user;
protected function setUp(): void
{
parent::setUp();
$this->user = User::factory()->create();
$this->actingAs($this->user);
}
public function test_duplicate_content_hash_is_skipped_on_upload(): void
{
Storage::fake('local');
@@ -62,6 +73,7 @@ class RecordingDuplicateUploadTest extends TestCase
public function test_upload_page_includes_existing_fingerprints_for_client_dedupe(): void
{
Recording::query()->create([
'user_id' => $this->user->id,
'title' => 'Existing',
'original_filename' => 'note.mp3',
'file_path' => 'recordings/note.mp3',
@@ -82,6 +94,7 @@ class RecordingDuplicateUploadTest extends TestCase
Bus::fake();
Recording::query()->create([
'user_id' => $this->user->id,
'title' => 'Legacy',
'original_filename' => 'legacy.mp3',
'file_path' => 'recordings/legacy.mp3',