Browse Source

Add job has has many comments relation

pull/37/head
Nafies Luthfi 7 years ago
parent
commit
72828e9f3a
  1. 11
      app/Entities/Projects/Issue.php
  2. 1
      app/Providers/AppServiceProvider.php
  3. 15
      tests/Unit/Models/IssueTest.php

11
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 '<span class="badge">'.$this->status.'</span>';
}
/**
* Issue has many comments relation.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany
*/
public function comments()
{
return $this->morphMany(Comment::class, 'commentable');
}
}

1
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',
]);
}

15
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('<span class="label label-'.$colorClass.'">'.$issue->priority.'</span>', $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());
}
}
Loading…
Cancel
Save