Files
ladill-transfer/tests/Feature/TransferTest.php
T
isaaccladandCursor 311b5b40bb
Deploy Ladill Transfer / deploy (push) Successful in 51s
Bill transfer storage monthly with a 15-day grace period before deletion.
Files stay available while wallet renewals succeed each month. Failed renewals
keep files for TRANSFER_GRACE_PERIOD_DAYS (default 15) before automatic cleanup.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 12:28:33 +00:00

55 lines
1.7 KiB
PHP

<?php
namespace Tests\Feature;
use App\Models\Transfer;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Tests\Concerns\FakesTransferBilling;
use Tests\TestCase;
class TransferTest extends TestCase
{
use FakesTransferBilling;
use RefreshDatabase;
public function test_authenticated_user_can_create_transfer_with_files(): void
{
Storage::fake('qr');
$this->fakeTransferBillingApi();
$user = User::create([
'public_id' => (string) Str::uuid(),
'name' => 'Test User',
'email' => 'transfer+'.uniqid().'@example.com',
]);
$response = $this->actingAs($user)->post(route('transfer.transfers.store'), [
'title' => 'Project assets',
'message' => 'Here are the files.',
'files' => [
UploadedFile::fake()->create('brief.pdf', 100, 'application/pdf'),
UploadedFile::fake()->create('photo.jpg', 50, 'image/jpeg'),
],
]);
$response->assertRedirect();
$this->assertDatabaseCount('transfers', 1);
$this->assertDatabaseCount('transfer_files', 2);
$this->assertDatabaseHas('qr_codes', ['type' => 'transfer', 'label' => 'Project assets']);
$transfer = Transfer::first();
$this->assertNotNull($transfer->qr_code_id);
$this->assertNotNull($transfer->paid_until);
$this->assertTrue($transfer->paid_until->isFuture());
}
public function test_dashboard_requires_auth(): void
{
$this->get(route('transfer.dashboard'))->assertRedirect();
}
}