forked from aslan/applicant-site
add tests to Department resource
This commit is contained in:
parent
35104455c2
commit
7d4461e231
|
@ -35,6 +35,7 @@ class DepartmentController extends Controller
|
|||
$department->description = $validated['description'];
|
||||
$department->position = $validated['position'];
|
||||
$department->faculty_id = $validated['faculty_id'];
|
||||
$department->slug = $validated['slug'];
|
||||
$department->save();
|
||||
|
||||
return redirect()->route('departments.index');
|
||||
|
@ -61,6 +62,7 @@ class DepartmentController extends Controller
|
|||
$department->description = $validated['description'];
|
||||
$department->position = $validated['position'];
|
||||
$department->faculty_id = $validated['faculty_id'];
|
||||
$department->slug = $validated['slug'];
|
||||
$department->save();
|
||||
|
||||
return redirect()->route('departments.index');
|
||||
|
|
|
@ -14,8 +14,8 @@ class DepartmentFactory extends Factory
|
|||
'name' => fake()->name(),
|
||||
'description' => fake()->text(),
|
||||
'slug' => fake()->slug(),
|
||||
'position' => fake()->randomNumber(),
|
||||
'faculty_id' => fake()->realTextBetween(1,5,1),
|
||||
'position' => fake()->randomDigit(),
|
||||
'faculty_id' => 1,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,6 +53,18 @@
|
|||
{{ $errors->first('faculty_id') }}
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
{{ Form::label('slug', 'URL') }}
|
||||
</div>
|
||||
<div class="mt-1">
|
||||
{{ Form::text('slug', '', ['class' => 'form-control']) }}
|
||||
</div>
|
||||
<div>
|
||||
@if ($errors->any())
|
||||
{{ $errors->first('slug') }}
|
||||
@endif
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
{{ Form::submit('Создать', ['class' => 'btn btn-primary']) }}
|
||||
</div>
|
|
@ -0,0 +1,104 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Feature\admin\catalog;
|
||||
|
||||
use App\Models\Department;
|
||||
use App\Models\EducationalInstitution;
|
||||
use App\Models\Faculty;
|
||||
use App\Models\User;
|
||||
use Tests\TestCase;
|
||||
|
||||
class DepartmentTest extends TestCase
|
||||
{
|
||||
private User $user;
|
||||
private Department $department;
|
||||
private array $data;
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
EducationalInstitution::factory()->create();
|
||||
Faculty::factory()->create();
|
||||
$this->department = Department::factory()->create();
|
||||
$this->data = Department::factory()->make()->only([
|
||||
'position',
|
||||
'name',
|
||||
'description',
|
||||
'slug',
|
||||
'faculty_id',
|
||||
]);
|
||||
$this->user = User::factory()->create([
|
||||
'name' => 'admin',
|
||||
'email' => 'test@example.com',
|
||||
'password' => 123456
|
||||
]);
|
||||
}
|
||||
public function testIndexDepartmentsPage(): void
|
||||
{
|
||||
$response = $this->actingAs($this->user)
|
||||
->withSession(['banned' => false])
|
||||
->get(route('departments.index'));
|
||||
|
||||
$response->assertOk();
|
||||
}
|
||||
|
||||
public function testCreateDepartmentPage(): void
|
||||
{
|
||||
$response = $this->actingAs($this->user)
|
||||
->withSession(['banned' => false])
|
||||
->get(route('departments.create'));
|
||||
|
||||
$response->assertOk();
|
||||
}
|
||||
|
||||
public function testStoreDepartment(): void
|
||||
{
|
||||
$response = $this->actingAs($this->user)
|
||||
->withSession(['banned' => false])
|
||||
->post(route('departments.store', $this->data));
|
||||
|
||||
$response->assertRedirect(route('departments.index'));
|
||||
|
||||
$this->assertDatabaseHas('departments', $this->data);
|
||||
}
|
||||
|
||||
public function testShowDepartmentPage(): void
|
||||
{
|
||||
$response = $this->actingAs($this->user)
|
||||
->withSession(['banned' => false])
|
||||
->get(route('departments.show', $this->department));
|
||||
|
||||
$response->assertOk();
|
||||
}
|
||||
|
||||
public function testEditDepartmentPage(): void
|
||||
{
|
||||
$response = $this->actingAs($this->user)
|
||||
->withSession(['banned' => false])
|
||||
->get(route('departments.edit', $this->department));
|
||||
|
||||
$response->assertOk();
|
||||
}
|
||||
|
||||
public function testUpdateDepartment(): void
|
||||
{
|
||||
$response = $this->actingAs($this->user)
|
||||
->withSession(['banned' => false])
|
||||
->patch(route('departments.update', $this->department), $this->data);
|
||||
|
||||
$response->assertRedirect(route('departments.index'));
|
||||
|
||||
$this->assertDatabaseHas('departments', $this->data);
|
||||
}
|
||||
|
||||
|
||||
public function testDestroyDepartment(): void
|
||||
{
|
||||
$response = $this->actingAs($this->user)
|
||||
->withSession(['banned' => false])
|
||||
->delete(route('departments.destroy', $this->department));
|
||||
|
||||
$response->assertRedirect(route('departments.index'));
|
||||
|
||||
$this->assertDatabaseMissing('departments', $this->department->toArray());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue