app/tests/Feature/User/CreateUserTest.php

47 lines
1.2 KiB
PHP

<?php
namespace Tests\Feature\User;
use App\Models\Planner;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Testing\Fluent\AssertableJson;
use Tests\TestCase;
use Tests\Traits\HasPlanner;
class CreateUserTest extends TestCase
{
use HasPlanner;
use RefreshDatabase;
protected function setUp(): void
{
parent::setUp();
$this->setUpHasPlanner();
}
public function test_planner_can_create_user(): void
{
$planner = $this->planner;
$newUserName = fake()->name;
$this->assertDatabaseEmpty(User::class);
$this
->actingAs($planner)
->post(route('api.users.create'), [
'name' => $newUserName,
])
->assertStatus(200)
->assertJson(fn (AssertableJson $json) => $json
->where('success', true)
->has('payload', fn ($json) => $json
->has('user', fn ($json) => $json
->has('id')
->where('name', $newUserName)
)
)
->where('errors', null)
);
}
}