diff --git a/app/Entities/Projects/Issue.php b/app/Entities/Projects/Issue.php
index 17a31af..2ec06fc 100644
--- a/app/Entities/Projects/Issue.php
+++ b/app/Entities/Projects/Issue.php
@@ -3,6 +3,7 @@
namespace App\Entities\Projects;
use App\Entities\Users\User;
+use App\Entities\Projects\Comment;
use App\Entities\Projects\Project;
use Illuminate\Database\Eloquent\Model;
@@ -48,4 +49,14 @@ class Issue extends Model
{
return ''.$this->status.'';
}
+
+ /**
+ * Issue has many comments relation.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\MorphMany
+ */
+ public function comments()
+ {
+ return $this->morphMany(Comment::class, 'commentable');
+ }
}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 818ae3c..d8823c2 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -22,6 +22,7 @@ class AppServiceProvider extends ServiceProvider
Relation::morphMap([
'projects' => 'App\Entities\Projects\Project',
+ 'issues' => 'App\Entities\Projects\Issue',
'jobs' => 'App\Entities\Projects\Job',
]);
}
diff --git a/tests/Unit/Models/IssueTest.php b/tests/Unit/Models/IssueTest.php
index 7877fdd..a43ed72 100644
--- a/tests/Unit/Models/IssueTest.php
+++ b/tests/Unit/Models/IssueTest.php
@@ -5,7 +5,9 @@ namespace Tests\Unit\Models;
use Tests\TestCase;
use App\Entities\Users\User;
use App\Entities\Projects\Issue;
+use App\Entities\Projects\Comment;
use App\Entities\Projects\Project;
+use Illuminate\Support\Collection;
use App\Entities\Projects\Priority;
use Illuminate\Foundation\Testing\RefreshDatabase;
@@ -81,4 +83,17 @@ class IssueTest extends TestCase
$this->assertEquals(''.$issue->priority.'', $issue->priority_label);
}
+
+ /** @test */
+ public function an_issue_has_many_comments_relation()
+ {
+ $issue = factory(Issue::class)->create();
+ $comment = factory(Comment::class)->create([
+ 'commentable_type' => 'issues',
+ 'commentable_id' => $issue->id,
+ ]);
+
+ $this->assertInstanceOf(Collection::class, $issue->comments);
+ $this->assertInstanceOf(Comment::class, $issue->comments->first());
+ }
}