From 6dbb92e7b64752d007f6515da8cec6e89946fa27 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Wed, 19 Nov 2025 21:48:12 +0200 Subject: [PATCH] test that was opened is flipped to true when carrie first sees the bid --- src/Bid/UseCases/GetBidForCarrier.php | 4 ++++ .../Bid/UseCases/GetBidForCarrierTest.php | 24 ++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/Bid/UseCases/GetBidForCarrier.php b/src/Bid/UseCases/GetBidForCarrier.php index 90404c2..3537556 100644 --- a/src/Bid/UseCases/GetBidForCarrier.php +++ b/src/Bid/UseCases/GetBidForCarrier.php @@ -21,6 +21,10 @@ class GetBidForCarrier if ($bid === null) { throw new InvalidArgumentException('Bid not found!'); } + if ($bid->getWasOpened() === false) { + $bid->setWasOpened(true); + $this->bidRepo->save($bid); + } return $bid; } } diff --git a/tests/Unit/Bid/UseCases/GetBidForCarrierTest.php b/tests/Unit/Bid/UseCases/GetBidForCarrierTest.php index a54a4d8..8d4a4ba 100644 --- a/tests/Unit/Bid/UseCases/GetBidForCarrierTest.php +++ b/tests/Unit/Bid/UseCases/GetBidForCarrierTest.php @@ -2,6 +2,7 @@ namespace Tests\Unit\Bid\UseCases; +use FreightQuote\Bid\Bid; use FreightQuote\Bid\UseCases\GetBidForCarrier; use FreightQuote\Bid\UseCases\GetBidForCarrierRequest; use PHPUnit\Framework\TestCase; @@ -10,13 +11,30 @@ use Tests\Fakes\Bid\FakeBidRepository; class GetBidForCarrierTest extends TestCase { + private FakeBidRepository $bidRepo; + private GetBidForCarrier $useCase; + + public function setUp(): void + { + $this->bidRepo = new FakeBidRepository(); + $this->useCase = new GetBidForCarrier($this->bidRepo); + } + public function test_nonexistant_bid_throws_error(): void { $this->expectException(InvalidArgumentException::class); $bidId = '12345abcd'; $dto = new GetBidForCarrierRequest($bidId); - $bidRepo = new FakeBidRepository(); - $useCase = new GetBidForCarrier($bidRepo); - $foundBid = $useCase->execute($dto); + $foundBid = $this->useCase->execute($dto); + } + + public function test_first_view_flips_opened_flag(): void + { + $bidId = 'abcd'; + $this->bidRepo->save(new Bid($bidId, 0, 0, false)); + $foundBid = $this->useCase->execute( + new GetBidForCarrierRequest($bidId) + ); + $this->assertEquals(true, $foundBid->getWasOpened()); } }