From 0e9bb1de0f98457dbe481ad2ea245f7db5ac310c Mon Sep 17 00:00:00 2001 From: hackerESQ Date: Mon, 28 Oct 2024 16:59:58 -0500 Subject: [PATCH] tests:add tests for setting owner_id on new portfolio create --- app/Models/Portfolio.php | 5 --- database/factories/PortfolioFactory.php | 1 - tests/PortfoliosTest.php | 54 +++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 tests/PortfoliosTest.php diff --git a/app/Models/Portfolio.php b/app/Models/Portfolio.php index 8f8a615..36a2535 100644 --- a/app/Models/Portfolio.php +++ b/app/Models/Portfolio.php @@ -27,10 +27,6 @@ class Portfolio extends Model protected static function boot() { parent::boot(); - - static::saving(function ($portfolio) { - unset($portfolio->owner_id); - }); static::saved(function ($portfolio) { @@ -95,7 +91,6 @@ class Portfolio extends Model { // enable queued jobs to create portfolios with owners if (!auth()->user()?->id && !$this->owner_id) { - $this->attributes['owner_id'] = $value; static::$owner_id = $value; } } diff --git a/database/factories/PortfolioFactory.php b/database/factories/PortfolioFactory.php index 0d64dcd..85ac7bd 100644 --- a/database/factories/PortfolioFactory.php +++ b/database/factories/PortfolioFactory.php @@ -2,7 +2,6 @@ namespace Database\Factories; -use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; /** diff --git a/tests/PortfoliosTest.php b/tests/PortfoliosTest.php new file mode 100644 index 0000000..607bc4a --- /dev/null +++ b/tests/PortfoliosTest.php @@ -0,0 +1,54 @@ +actingAs($user = User::factory()->create()); + + $portfolio = Portfolio::factory()->create(); + + $this->assertEquals($user->id, $portfolio->owner_id); + } + + /** + */ + public function test_owner_can_be_forced_on_create(): void + { + $this->actingAs($user = User::factory()->create()); + + $portfolio = Portfolio::factory()->make(); + $portfolio->owner_id = $user->id; + $portfolio->save(); + + $this->assertEquals($user->id, $portfolio->owner_id); + } + + /** + */ + public function test_owner_cannot_be_changed_on_update(): void + { + $this->actingAs($owner = User::factory()->create()); + + $interloper = User::factory()->create(); + + $portfolio = Portfolio::factory()->create(); + $portfolio->owner_id = $interloper->id; + $portfolio->save(); + + $this->assertEquals($owner->id, $portfolio->owner_id); + } + + +}