116 lines
3.0 KiB
PHP
116 lines
3.0 KiB
PHP
<?php
|
|
|
|
use Modules\Karyawaf\Entities\Karyawan;
|
|
use Laravel\Passport\Passport;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use App\Admin;
|
|
|
|
class ApiKaryawansCest
|
|
{
|
|
private $endpoint = '/api/karyawaf/karyawans';
|
|
|
|
private function initDatabase()
|
|
{
|
|
Artisan::call('migrate');
|
|
Artisan::call('module:migrate', ['Karyawaf']);
|
|
Artisan::call('db:seed');
|
|
Artisan::call('module:seed', ['Karyawaf']);
|
|
Artisan::call('passport:client', ['--password' => true, '--name' => 'laraland']);
|
|
}
|
|
|
|
public function _before(FunctionalTester $I)
|
|
{
|
|
$this->initDatabase();
|
|
|
|
Passport::actingAs(Admin::find(1));
|
|
|
|
$I->seeAuthentication('api');
|
|
}
|
|
|
|
public function _after(FunctionalTester $I)
|
|
{
|
|
}
|
|
|
|
public function getAllData(FunctionalTester $I)
|
|
{
|
|
$karyawan = Karyawan::find(1);
|
|
|
|
$I->sendGET($this->endpoint);
|
|
|
|
$I->seeResponseContainsJson([
|
|
'data' => [
|
|
['nama' => $karyawan->nama]
|
|
]
|
|
]);
|
|
}
|
|
|
|
public function getSingleData(FunctionalTester $I)
|
|
{
|
|
$karyawan = Karyawan::find(1);
|
|
|
|
$I->sendGET($this->endpoint . '/' . $karyawan->id);
|
|
|
|
$I->seeResponseContainsJson([
|
|
'data' => [
|
|
'nama' => $karyawan->nama
|
|
]
|
|
]);
|
|
}
|
|
|
|
public function storeData(FunctionalTester $I)
|
|
{
|
|
Auth::user()->givePermissionTo('create-karyawan');
|
|
|
|
$faker = Faker\Factory::create();
|
|
$karyawan = [
|
|
'nama' => $faker->name,
|
|
'posisi' => $faker->jobTitle,
|
|
'tempat_lahir' => $faker->city,
|
|
'tanggal_lahir' => $faker->dateTimeBetween('-50 years', '-19 years', 'Asia/Jakarta')->format('Y-m-d'),
|
|
'rekrut' => $faker->dateTimeBetween('-10 years', '-1 year', 'Asia/Jakarta')->format('Y-m-d'),
|
|
'status' => 1,
|
|
];
|
|
|
|
// $I->haveHttpHeader('Content-Type', 'multipart/form-data');
|
|
$I->sendPOST($this->endpoint, $karyawan);
|
|
|
|
$I->seeResponseContainsJson([
|
|
'data' => [
|
|
'nama' => $karyawan['nama']
|
|
]
|
|
]);
|
|
}
|
|
|
|
public function updateData(FunctionalTester $I)
|
|
{
|
|
Auth::user()->givePermissionTo('update-karyawan');
|
|
|
|
$karyawan = Karyawan::find(1);
|
|
|
|
$I->sendPUT($this->endpoint . '/' . $karyawan->id, [
|
|
'nama' => 'Gregorio',
|
|
'posisi' => $karyawan->posisi,
|
|
'tempat_lahir' => $karyawan->tempat_lahir,
|
|
'tanggal_lahir' => $karyawan->tanggal_lahir,
|
|
'rekrut' => $karyawan->rekrut,
|
|
'status' => $karyawan->status
|
|
]);
|
|
|
|
$I->seeResponseContainsJson([
|
|
'data' => [
|
|
'nama' => 'Gregorio'
|
|
]
|
|
]);
|
|
}
|
|
|
|
public function deleteData(FunctionalTester $I)
|
|
{
|
|
$karyawan = Karyawan::find(1);
|
|
|
|
$I->sendDELETE($this->endpoint . '/' . $karyawan->id);
|
|
|
|
$I->seeResponseCodeIsSuccessful();
|
|
$I->seeResponseContains('deleted');
|
|
}
|
|
}
|