Initialer Laravel Commit für BetiX
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled

This commit is contained in:
2026-04-04 18:01:50 +02:00
commit 0280278978
374 changed files with 65210 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
<?php
namespace Tests\Feature\Gateway;
use App\Models\User;
use Illuminate\Support\Facades\Http;
use Tests\TestCase;
class VaultControllerTest extends TestCase
{
private function base(): string
{
return rtrim((string) config('services.backend.base'), '/');
}
private function actingUser()
{
return User::factory()->create([
'username' => 'vaultuser',
'email_verified_at' => now(),
'balance' => 11.0000,
'vault_balance' => 5.0000,
'vault_pin_hash' => \Illuminate\Support\Facades\Hash::make('1234'),
]);
}
public function test_show_success_maps_shape()
{
$user = $this->actingUser();
\App\Models\WalletTransfer::create([
'user_id' => $user->id,
'type' => 'deposit',
'amount' => 1.00,
'currency' => 'BTX',
'balance_before' => 12.00,
'balance_after' => 11.00,
'vault_before' => 4.00,
'vault_after' => 5.00,
]);
$res = $this->actingAs($user, 'web')->get('/api/wallet/vault');
$res->assertStatus(200)
->assertJson([
'balance' => '11.0000',
'vault_balance' => '5.0000',
'currency' => 'BTX',
])
->assertJsonStructure(['transfers', 'now']);
}
public function test_show_client_error_not_applicable_for_local_show()
{
// Der lokale VaultController->show() wirft keinen 400er Client-Fehler wie der Proxy
$this->assertTrue(true);
}
public function test_show_server_error_not_applicable_for_local_show()
{
// Der lokale VaultController->show() wirft keinen 503er Service-Fehler wie der Proxy
$this->assertTrue(true);
}
public function test_deposit_success_maps_balances()
{
$user = $this->actingUser();
$res = $this->actingAs($user, 'web')
->postJson('/api/wallet/vault/deposit', [ 'amount' => '1.0000', 'pin' => '1234' ]);
$res->assertStatus(201)
->assertJson([
'balances' => [ 'balance' => '10.0000', 'vault_balance' => '6.0000' ],
])
->assertJsonStructure(['data', 'balances']);
}
public function test_withdraw_success_maps_balances()
{
$user = $this->actingUser();
$res = $this->actingAs($user, 'web')
->postJson('/api/wallet/vault/withdraw', [ 'amount' => '1.0000', 'pin' => '1234' ]);
$res->assertStatus(201)
->assertJson([
'balances' => [ 'balance' => '12.0000', 'vault_balance' => '4.0000' ],
]);
}
}