finish Events Category crud
This commit is contained in:
@@ -4,9 +4,11 @@ namespace Tests\Feature;
|
||||
|
||||
use App\Models\Event;
|
||||
use App\Models\EventCategory;
|
||||
use App\Models\Memo;
|
||||
use App\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Foundation\Testing\WithFaker;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Tests\TestCase;
|
||||
|
||||
class EventsTest extends TestCase
|
||||
@@ -45,6 +47,170 @@ class EventsTest extends TestCase
|
||||
]);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function event_category_name_are_required()
|
||||
{
|
||||
$this->actingAs($user = factory(\App\User::class)->create(['role' => 2]), 'api');
|
||||
$response = $this->post('/api/events/categories', ['name' => '', 'description' => 'test name required']);
|
||||
|
||||
$response->assertSessionHasErrors('name');
|
||||
$this->assertCount(0, EventCategory::all());
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function only_admin_can_create_event_category()
|
||||
{
|
||||
$this->actingAs($user = factory(User::class)->create(), 'api');
|
||||
$response = $this->post('/api/events/categories', ['name' => 'Test fail', 'description' => 'test name required']);
|
||||
|
||||
$response->assertStatus(403);
|
||||
$this->assertCount(0, EventCategory::all());
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function an_event_category_can_be_retrieved()
|
||||
{
|
||||
$this->actingAs($user = factory(User::class)->create(), 'api');
|
||||
|
||||
$category = EventCategory::create(['name' => 'Test category', 'description' => 'Test description']);
|
||||
|
||||
$response = $this->get('/api/events/categories/' . $category->id );
|
||||
|
||||
$response->assertJson([
|
||||
'data' => [
|
||||
'type' => 'event categories',
|
||||
'event_category_id' => $category->id,
|
||||
'attributes' => [
|
||||
'data' => [
|
||||
'name' => $category->name,
|
||||
'description' => $category->description,
|
||||
]
|
||||
],
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function all_event_categories_can_be_retrieved()
|
||||
{
|
||||
$this->actingAs($user = factory(User::class)->create(), 'api');
|
||||
|
||||
$category = EventCategory::create(['name' => 'Test category', 'description' => 'Test description']);
|
||||
$categoryTwo = EventCategory::create(['name' => 'Test category 2', 'description' => 'Test description']);
|
||||
$categoryTree = EventCategory::create(['name' => 'Test category 3', 'description' => 'Test description']);
|
||||
|
||||
$response = $this->get('/api/events/categories');
|
||||
|
||||
$response->assertJson([
|
||||
'data' => [
|
||||
[
|
||||
'data' => [
|
||||
'type' => 'event categories',
|
||||
'event_category_id' => $category->id,
|
||||
'attributes' => [
|
||||
'data' => [
|
||||
'name' => $category->name,
|
||||
'description' => $category->description,
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'data' => [
|
||||
'type' => 'event categories',
|
||||
'event_category_id' => $categoryTwo->id,
|
||||
'attributes' => [
|
||||
'data' => [
|
||||
'name' => $categoryTwo->name,
|
||||
'description' => $categoryTwo->description,
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'data' => [
|
||||
'type' => 'event categories',
|
||||
'event_category_id' => $categoryTree->id,
|
||||
'attributes' => [
|
||||
'data' => [
|
||||
'name' => $categoryTree->name,
|
||||
'description' => $categoryTree->description,
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function a_event_category_can_be_patch()
|
||||
{
|
||||
$this->actingAs($user = factory(User::class)->create(['role' => 2]), 'api');
|
||||
|
||||
$category = EventCategory::create(['name' => 'Test category', 'description' => 'Test description']);
|
||||
|
||||
$response = $this->patch('/api/events/categories/' . $category->id, ['name' => 'Update Catégory']);
|
||||
|
||||
$category = $category->fresh();
|
||||
|
||||
$this->assertEquals('Update Catégory', $category->name);
|
||||
|
||||
$response->assertStatus(200);
|
||||
$response->assertJson([
|
||||
'data' => [
|
||||
'type' => 'event categories',
|
||||
'event_category_id' => $category->id,
|
||||
'attributes' => [
|
||||
'data' => [
|
||||
'name' => $category->name,
|
||||
'description' => $category->description,
|
||||
]
|
||||
],
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function only_the_admin_can_patch_the_memo()
|
||||
{
|
||||
$this->actingAs($user = factory(User::class)->create(), 'api');
|
||||
$category = EventCategory::create(['name' => 'Test category', 'description' => 'Test description']);
|
||||
|
||||
$response = $this->patch('/api/events/categories/' . $category->id, ['name' => 'try to update']);
|
||||
|
||||
$response->assertStatus(403);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function an_event_category_can_be_delete()
|
||||
{
|
||||
$this->actingAs($user = factory(User::class)->create(['role' => 2]), 'api');
|
||||
$category = EventCategory::create(['name' => 'Test category', 'description' => 'Test description']);
|
||||
|
||||
$response = $this->delete('/api/events/categories/' . $category->id);
|
||||
|
||||
$category = $category->fresh();
|
||||
|
||||
$this->assertCount(0, EventCategory::all());
|
||||
|
||||
$response->assertStatus(204);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function only_admin_can_delete_an_event_category()
|
||||
{
|
||||
$this->actingAs($user = factory(User::class)->create(), 'api');
|
||||
$category = EventCategory::create(['name' => 'Test category', 'description' => 'Test description']);
|
||||
|
||||
$response = $this->delete('/api/events/categories/' . $category->id);
|
||||
|
||||
$response->assertStatus(403);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test */
|
||||
public function a_user_can_create_an_event()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user