fix: quantity validation should not count current transaction

This commit is contained in:
hackerESQ
2025-08-29 15:47:18 -05:00
parent afcafa6031
commit a0bd776abb
6 changed files with 61 additions and 8 deletions
+19
View File
@@ -8,6 +8,7 @@ use App\Models\Holding;
use App\Models\Portfolio;
use App\Models\Transaction;
use App\Models\User;
use App\Rules\QuantityValidationRule;
use Illuminate\Foundation\Testing\RefreshDatabase;
class TransactionsTest extends TestCase
@@ -69,4 +70,22 @@ class TransactionsTest extends TestCase
0.01
);
}
public function test_cannot_sell_more_than_owned(): void
{
$this->actingAs($user = User::factory()->create());
$portfolio = Portfolio::factory()->create();
Transaction::factory(5)->buy()->lastYear()->portfolio($portfolio->id)->symbol('AAPL')->create();
$sale_transaction = Transaction::factory()->sell(6)->lastMonth()->portfolio($portfolio->id)->symbol('AAPL')->make();
$rule = new QuantityValidationRule($portfolio, $sale_transaction->symbol, 'SELL', $sale_transaction->date, $sale_transaction);
$rule->validate('quantity', $sale_transaction->quantity, function () {
$this->assertFalse(false, 'Not permitted to sell more than owned.');
});
$this->assertTrue(true);
}
}