parfum/tests/Feature/Livewire/Studio/Master/User/CreateTest.php
Yoga Pangestu f8935a1c73 fix(user): kolom email dan username di table dijadikan 1 kolom yaitu Kredensial
-menyesuaikan validasi base_salary dan menghapus toDateString()
-menambahkan dispatch refreshDatatabse saat create
-membuat EmployeeFactory
-menyesuaikan UserFactory dan test
2025-09-29 17:38:28 +07:00

46 lines
1.4 KiB
PHP

<?php
use App\Livewire\Studio\Master\User\Create;
use App\Livewire\Studio\Master\User\Index;
use App\Models\Employee;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;
uses(RefreshDatabase::class);
it('renders successfully', function () {
Livewire::test(Create::class)
->assertViewIs('livewire.studio.master.user.form')
->assertViewHas('pageTitle', 'Tambah Pegawai');
});
it('can create an user', function () {
$user = User::factory()->raw();
$employee = Employee::factory()->raw();
$data = array_merge($user, $employee);
Livewire::test(Create::class)
->set('form.full_name', $data['full_name'])
->set('form.username', $data['username'])
->set('form.email', $data['email'])
->set('form.phone_number', $data['phone_number'])
->set('form.base_salary', $data['base_salary'])
->set('form.birthdate', $data['birthdate'])
->set('form.hire_date', $data['hire_date'])
->set('form.address', $data['address'])
->set('form.gender', $data['gender']->value)
->set('form.status', $data['status']->value)
->call('save')
->assertHasNoErrors()
->assertDispatched('refreshDatatable')
->assertRedirect(Index::class);
$this->assertDatabaseHas('users', [
'email' => $data['email'],
'username' => $data['username'],
]);
});