diff --git a/src/Models/Transaction.php b/src/Models/Transaction.php index 26206238c..ce22b0685 100644 --- a/src/Models/Transaction.php +++ b/src/Models/Transaction.php @@ -49,6 +49,8 @@ class Transaction extends Model 'amount', 'confirmed', 'meta', + 'created_at', + 'updated_at', ]; /** diff --git a/src/Models/Transfer.php b/src/Models/Transfer.php index dc1a341fa..721696d46 100644 --- a/src/Models/Transfer.php +++ b/src/Models/Transfer.php @@ -56,6 +56,8 @@ class Transfer extends Model 'to_id', 'uuid', 'fee', + 'created_at', + 'updated_at', ]; /** diff --git a/src/Models/Wallet.php b/src/Models/Wallet.php index 06c5ced7d..f2745a0e8 100644 --- a/src/Models/Wallet.php +++ b/src/Models/Wallet.php @@ -64,6 +64,8 @@ class Wallet extends Model implements Customer, WalletFloat, Confirmable, Exchan 'meta', 'balance', 'decimal_places', + 'created_at', + 'updated_at', ]; /** diff --git a/tests/Units/Domain/SilentlyDiscardingTest.php b/tests/Units/Domain/SilentlyDiscardingTest.php new file mode 100644 index 000000000..f17578c91 --- /dev/null +++ b/tests/Units/Domain/SilentlyDiscardingTest.php @@ -0,0 +1,82 @@ +create(); + self::assertFalse($buyer->relationLoaded('wallet')); + $buyer->deposit(1); + + self::assertTrue($buyer->relationLoaded('wallet')); + self::assertTrue($buyer->wallet->exists); + self::assertSame(1, $buyer->balanceInt); + } + + public function testTransferSilentlyDiscarding(): void + { + /** + * @var User $first + * @var User $second + */ + [$first, $second] = UserFactory::times(2)->create(); + self::assertNotSame($first->getKey(), $second->getKey()); + + self::assertNotNull($first->deposit(1000)); + self::assertSame(1000, $first->balanceInt); + + self::assertNotNull($first->transfer($second, 500)); + self::assertSame(500, $first->balanceInt); + self::assertSame(500, $second->balanceInt); + } + + public function testMultiWalletSilentlyDiscarding(): void + { + $this->app->bind(ClockServiceInterface::class, ClockFakeService::class); + + /** @var UserMulti $user */ + $user = UserMultiFactory::new()->create(); + $dateTime = app(ClockServiceInterface::class)->now(); + + $wallet = $user->createWallet([ + 'name' => 'hello', + 'created_at' => $dateTime->getTimestamp(), + 'updated_at' => $dateTime->getTimestamp(), + ]); + + self::assertCount(1, $user->wallets); + self::assertSame($dateTime->getTimestamp(), $wallet->created_at->getTimestamp()); + self::assertSame($dateTime->getTimestamp(), $wallet->updated_at->getTimestamp()); + } +}