Browse Source

Job deletion also deletes job comments

pull/34/head
Nafies Luthfi 7 years ago
parent
commit
2d95550024
  1. 4
      app/Entities/Projects/Job.php
  2. 19
      tests/Unit/Models/JobTest.php

4
app/Entities/Projects/Job.php

@ -2,6 +2,7 @@
namespace App\Entities\Projects; namespace App\Entities\Projects;
use DB;
use App\Entities\Users\User; use App\Entities\Users\User;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Laracasts\Presenter\PresentableTrait; use Laracasts\Presenter\PresentableTrait;
@ -112,7 +113,10 @@ class Job extends Model
public function delete() public function delete()
{ {
DB::beginTransaction();
$this->tasks()->delete(); $this->tasks()->delete();
$this->comments()->delete();
DB::commit();
return parent::delete(); return parent::delete();
} }

19
tests/Unit/Models/JobTest.php

@ -58,7 +58,7 @@ class JobTest extends TestCase
public function job_deletion_also_deletes_related_tasks() public function job_deletion_also_deletes_related_tasks()
{ {
$job = factory(Job::class)->create(); $job = factory(Job::class)->create();
$tasks = factory(Task::class)->create(['job_id' => $job->id]);
$task = factory(Task::class)->create(['job_id' => $job->id]);
$job->delete(); $job->delete();
@ -110,4 +110,21 @@ class JobTest extends TestCase
$this->assertInstanceOf(Collection::class, $job->comments); $this->assertInstanceOf(Collection::class, $job->comments);
$this->assertInstanceOf(Comment::class, $job->comments->first()); $this->assertInstanceOf(Comment::class, $job->comments->first());
} }
/** @test */
public function job_deletion_also_deletes_related_comments()
{
$job = factory(Job::class)->create();
$comment = factory(Comment::class)->create([
'commentable_type' => 'jobs',
'commentable_id' => $job->id,
]);
$job->delete();
$this->dontSeeInDatabase('comments', [
'commentable_type' => 'jobs',
'commentable_id' => $job->id,
]);
}
} }
Loading…
Cancel
Save