Files
portal/app/tests/Feature/Advertising/AdWalletTopupTest.php
T

26 lines
1.1 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
use App\Models\AdWallet;
use App\Models\Tenant;
use App\Services\Advertising\AdWalletService;
use Illuminate\Foundation\Testing\DatabaseTransactions;
// Откат после теста. Без него записи файла остаются в базе и роняют ЧУЖИЕ тесты:
// 01.08.2026 девятнадцать чужих проводок уронили денежную проверку приёмника МТС.
uses(DatabaseTransactions::class);
it('tops up ad wallet and writes a transaction', function () {
$tenant = Tenant::factory()->create();
AdWallet::create(['tenant_id' => $tenant->id, 'balance_rub' => '0.00', 'frozen_rub' => '0.00']);
app(AdWalletService::class)->topup($tenant->id, '1000.00', channel: null, description: 'ЮKassa');
$wallet = AdWallet::where('tenant_id', $tenant->id)->first();
expect($wallet->balance_rub)->toBe('1000.00');
$this->assertDatabaseHas('ad_wallet_transactions', [
'tenant_id' => $tenant->id, 'type' => 'topup', 'amount_rub' => '1000.00',
]);
});