From 86ab880c90d2ef7249e0838222842e80e65aa5f1 Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Tue, 19 Mar 2024 15:34:59 -0500 Subject: [PATCH] buncha progress --- database/factories/AssetFactory.php | 11 +++++ tests/Feature/Api/Assets/AssetStoreTest.php | 1 - tests/Feature/Api/Assets/AssetUpdateTest.php | 51 +++++++++++++++----- 3 files changed, 49 insertions(+), 14 deletions(-) diff --git a/database/factories/AssetFactory.php b/database/factories/AssetFactory.php index 432495bcc..c010dfb52 100644 --- a/database/factories/AssetFactory.php +++ b/database/factories/AssetFactory.php @@ -48,6 +48,7 @@ class AssetFactory extends Factory 'assigned_type' => null, 'next_audit_date' => null, 'last_checkout' => null, + 'asset_eol_date' => null ]; } @@ -352,4 +353,14 @@ class AssetFactory extends Factory { return $this->state(['requestable' => false]); } + + public function noPurchaseOrEolDate() + { + return $this->afterCreating(function (Asset $asset) { + $asset->update([ + 'purchase_date' => null, + 'asset_eol_date' => null + ]); + }); + } } diff --git a/tests/Feature/Api/Assets/AssetStoreTest.php b/tests/Feature/Api/Assets/AssetStoreTest.php index 631944190..eee0da392 100644 --- a/tests/Feature/Api/Assets/AssetStoreTest.php +++ b/tests/Feature/Api/Assets/AssetStoreTest.php @@ -153,7 +153,6 @@ class AssetStoreTest extends TestCase ->assertOk() ->assertStatusMessageIs('success') ->json(); - return $response; $asset = Asset::find($response['payload']['id']); $this->assertEquals('2024-01-01', $asset->asset_eol_date); diff --git a/tests/Feature/Api/Assets/AssetUpdateTest.php b/tests/Feature/Api/Assets/AssetUpdateTest.php index bd5377efd..17bb72fa3 100644 --- a/tests/Feature/Api/Assets/AssetUpdateTest.php +++ b/tests/Feature/Api/Assets/AssetUpdateTest.php @@ -27,6 +27,16 @@ class AssetUpdateTest extends TestCase ->assertForbidden(); } + public function testGivenPermissionUpdateAssetIsAllower() + + { + $asset = Asset::factory()->create(); + + $this->actingAsForApi(User::factory()->editAssets()->create()) + ->patchJson(route('api.assets.update', $asset->id)) + ->assertOk(); + } + public function testAllAssetAttributesAreStored() { $asset = Asset::factory()->create(); @@ -89,29 +99,44 @@ class AssetUpdateTest extends TestCase $this->assertEquals(10, $updatedAsset->warranty_months); } - public function testArchivedDepreciateAndPhysicalCanBeNull() + public function testAssetEolDateIsCalculatedIfPurchaseDateUpdated() { - $model = AssetModel::factory()->ipadModel()->create(); - $status = Statuslabel::factory()->create(); + $model = AssetModel::factory()->mbp13Model()->create(); $asset = Asset::factory()->create(); $this->settings->enableAutoIncrement(); - $response = $this->actingAsForApi(User::factory()->superuser()->create()) - ->patchJson(route('api.assets.update', $asset->id), [ - 'archive' => null, - 'depreciate' => null, - 'physical' => null + $response = $this->actingAsForApi(User::factory()->editAssets()->create()) + ->patchJson((route('api.assets.update', $asset->id)), [ + 'model_id' => $model->id, + 'purchase_date' => '2021-01-01', ]) - ->dd() + //->dd() ->assertOk() ->assertStatusMessageIs('success') ->json(); - $asset = Asset::find($response['payload']['id']); - $this->assertEquals(0, $asset->archived); - $this->assertEquals(1, $asset->physical); - $this->assertEquals(0, $asset->depreciate); + $this->assertEquals('2024-01-01', $asset->asset_eol_date); + } + + public function testAssetEolDateIsNotCalculatedIfPurchaseDateNotSet() + { + $asset = Asset::factory()->laptopMbp()->noPurchaseOrEolDate()->create(); + + $this->settings->enableAutoIncrement(); + + $response = $this->actingAsForApi(User::factory()->editAssets()->create()) + ->patchJson(route('api.assets.update', $asset->id), [ + 'name' => 'test asset', + 'asset_eol_date' => '2022-01-01' + ]) + ->assertOk() + ->assertStatusMessageIs('success') + ->json(); + + $asset->refresh(); + + $this->assertEquals('2022-01-01', $asset->asset_eol_date); } } \ No newline at end of file