From d29f5fa13e45f22e498323458e97f9408284bb25 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 9 Apr 2025 11:07:47 -0700 Subject: [PATCH] Implement tests --- .../Ui/AssetAcceptanceTest.php | 42 ++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/tests/Feature/CheckoutAcceptances/Ui/AssetAcceptanceTest.php b/tests/Feature/CheckoutAcceptances/Ui/AssetAcceptanceTest.php index cd7e7dae6..7eb7697db 100644 --- a/tests/Feature/CheckoutAcceptances/Ui/AssetAcceptanceTest.php +++ b/tests/Feature/CheckoutAcceptances/Ui/AssetAcceptanceTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\CheckoutAcceptances\Ui; use App\Events\CheckoutAccepted; use App\Models\CheckoutAcceptance; +use App\Models\User; use Illuminate\Support\Facades\Event; use Tests\TestCase; @@ -20,12 +21,44 @@ class AssetAcceptanceTest extends TestCase public function testCannotAcceptAssetAlreadyAccepted() { - $this->markTestIncomplete(); + Event::fake([CheckoutAccepted::class]); + + $checkoutAcceptance = CheckoutAcceptance::factory()->accepted()->create(); + + $this->assertFalse($checkoutAcceptance->isPending()); + + $this->actingAs($checkoutAcceptance->assignedTo) + ->post(route('account.store-acceptance', $checkoutAcceptance), [ + 'asset_acceptance' => 'accepted', + 'note' => 'my note', + ]) + ->assertRedirectToRoute('account.accept') + ->assertSessionHas('error'); + + Event::assertNotDispatched(CheckoutAccepted::class); } public function testCannotAcceptAssetForAnotherUser() { - $this->markTestIncomplete(); + Event::fake([CheckoutAccepted::class]); + + $checkoutAcceptance = CheckoutAcceptance::factory()->pending()->create(); + + $this->assertTrue($checkoutAcceptance->isPending()); + + $anotherUser = User::factory()->create(); + + $this->actingAs($anotherUser) + ->post(route('account.store-acceptance', $checkoutAcceptance), [ + 'asset_acceptance' => 'accepted', + 'note' => 'my note', + ]) + ->assertRedirectToRoute('account.accept') + ->assertSessionHas('error'); + + $this->assertTrue($checkoutAcceptance->fresh()->isPending()); + + Event::assertNotDispatched(CheckoutAccepted::class); } public function testUserCanAcceptAssetCheckout() @@ -41,7 +74,8 @@ class AssetAcceptanceTest extends TestCase 'asset_acceptance' => 'accepted', 'note' => 'my note', ]) - ->assertRedirectToRoute('account.accept'); + ->assertRedirectToRoute('account.accept') + ->assertSessionHas('success'); $this->assertFalse($checkoutAcceptance->fresh()->isPending()); @@ -52,6 +86,4 @@ class AssetAcceptanceTest extends TestCase { $this->markTestIncomplete(); } - - }