1 changed files with 106 additions and 0 deletions
@ -0,0 +1,106 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace Tests\Feature\Projects; |
||||
|
|
||||
|
use Tests\TestCase; |
||||
|
use Illuminate\Foundation\Testing\RefreshDatabase; |
||||
|
|
||||
|
class ProjectIssuesTest extends TestCase |
||||
|
{ |
||||
|
use RefreshDatabase; |
||||
|
|
||||
|
/** @test */ |
||||
|
public function user_can_view_project_issues() |
||||
|
{ |
||||
|
$this->adminUserSigningIn(); |
||||
|
$project = factory(Project::class)->create(); |
||||
|
$issue = factory(Issue::class)->create([ |
||||
|
'project_id' => $project->id, |
||||
|
'title' => 'The issue title.', |
||||
|
'body' => 'This is a project issue body.', |
||||
|
]); |
||||
|
|
||||
|
$this->visitRoute('projects.issues.index', $project); |
||||
|
$this->seeRouteIs('projects.issues.index', $project); |
||||
|
|
||||
|
$this->seeText('The issue title.'); |
||||
|
$this->seeText('This is a project issue.'); |
||||
|
} |
||||
|
|
||||
|
/** @test */ |
||||
|
public function admin_can_add_issue_to_a_project() |
||||
|
{ |
||||
|
$admin = $this->adminUserSigningIn(); |
||||
|
$project = factory(Project::class)->create(); |
||||
|
|
||||
|
$this->visitRoute('projects.issues.index', $project); |
||||
|
|
||||
|
$this->submitForm(__('issue.create'), [ |
||||
|
'title' => 'First Issue.', |
||||
|
'body' => 'First Issue description.', |
||||
|
]); |
||||
|
|
||||
|
$this->seePageIs(route('projects.issues.index', $project)); |
||||
|
$this->see(__('issue.created')); |
||||
|
|
||||
|
$this->seeInDatabase('issues', [ |
||||
|
'project_id' => $project->id, |
||||
|
'title' => 'First Issue.', |
||||
|
'body' => 'First Issue description.', |
||||
|
'creator_id' => $admin->id, |
||||
|
]); |
||||
|
} |
||||
|
|
||||
|
/** @test */ |
||||
|
public function user_can_edit_issue() |
||||
|
{ |
||||
|
$this->adminUserSigningIn(); |
||||
|
$project = factory(Project::class)->create(); |
||||
|
$issue = factory(Issue::class)->create([ |
||||
|
'project_id' => $project->id, |
||||
|
'title' => 'The issue title.', |
||||
|
'body' => 'This is a project issue body.', |
||||
|
]); |
||||
|
|
||||
|
$this->visitRoute('projects.issues.index', $project); |
||||
|
$this->seeElement('a', ['id' => 'edit-issue-'.$issue->id]); |
||||
|
$this->click('edit-issue-'.$issue->id); |
||||
|
$this->seeRouteIs('projects.issues.index', [$project, 'action' => 'issue-edit', 'issue_id' => $issue->id]); |
||||
|
|
||||
|
$this->submitForm(__('issue.update'), [ |
||||
|
'title' => 'First Issue.', |
||||
|
'body' => 'This is a project issue body.', |
||||
|
]); |
||||
|
|
||||
|
$this->seePageIs(route('projects.issues.index', $project)); |
||||
|
$this->see(__('issue.updated')); |
||||
|
|
||||
|
$this->seeInDatabase('issues', [ |
||||
|
'id' => $issue->id, |
||||
|
'project_id' => $project->id, |
||||
|
'title' => 'First Issue.', |
||||
|
'body' => 'This is a project issue body.', |
||||
|
]); |
||||
|
} |
||||
|
|
||||
|
/** @test */ |
||||
|
public function user_can_delete_issue() |
||||
|
{ |
||||
|
$this->adminUserSigningIn(); |
||||
|
$project = factory(Project::class)->create(); |
||||
|
$issue = factory(Issue::class)->create([ |
||||
|
'project_id' => $project->id, |
||||
|
]); |
||||
|
|
||||
|
$this->visitRoute('projects.issues.index', $project); |
||||
|
$this->seeElement('button', ['id' => 'delete-issue-'.$issue->id]); |
||||
|
$this->press('delete-issue-'.$issue->id); |
||||
|
|
||||
|
$this->seePageIs(route('projects.issues.index', $project)); |
||||
|
$this->see(__('issue.deleted')); |
||||
|
|
||||
|
$this->dontSeeInDatabase('issues', [ |
||||
|
'id' => $issue->id, |
||||
|
]); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue