Skip to content

Commit 78bb410

Browse files
authored
Merge pull request #940 from bavix/frozen-balance
Frozen balance
2 parents 3638b50 + 432aab2 commit 78bb410

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

tests/Units/Domain/CreditWalletTest.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44

55
namespace Bavix\Wallet\Test\Units\Domain;
66

7+
use Bavix\Wallet\Services\AtomicServiceInterface;
8+
use Bavix\Wallet\Test\Infra\Factories\BuyerFactory;
79
use Bavix\Wallet\Test\Infra\Factories\UserMultiFactory;
10+
use Bavix\Wallet\Test\Infra\Models\Buyer;
811
use Bavix\Wallet\Test\Infra\Models\UserMulti;
912
use Bavix\Wallet\Test\Infra\TestCase;
1013

@@ -60,4 +63,28 @@ public function testCreditLimitBalanceZero(): void
6063
self::assertNotNull($transaction);
6164
self::assertSame(-10000, $wallet->balanceInt);
6265
}
66+
67+
public function testFrozenBalance(): void
68+
{
69+
/** @var Buyer $user */
70+
$user = BuyerFactory::new()->create();
71+
72+
self::assertFalse($user->relationLoaded('wallet'));
73+
self::assertEquals(0, $user->wallet->balanceInt);
74+
75+
app(AtomicServiceInterface::class)->block($user, function () use ($user) {
76+
$user->deposit(1000);
77+
78+
$meta = $user->wallet->meta ?? [];
79+
$meta['credit'] = ($meta['credit'] ?? 0) - 1000;
80+
81+
$user->wallet->meta = $meta;
82+
$user->wallet->saveOrFail();
83+
});
84+
85+
self::assertEquals(1000, $user->wallet->balanceInt);
86+
self::assertEquals(-1000.0, (float) $user->wallet->getCreditAttribute());
87+
88+
self::assertFalse($user->canWithdraw(1));
89+
}
6390
}

0 commit comments

Comments
 (0)