clqms-be/tests/feature/Patients/PatientDeleteTest.php
2025-09-25 14:01:33 +07:00

97 lines
2.8 KiB
PHP

<?php
namespace Tests\Feature\Patients;
use CodeIgniter\Test\FeatureTestTrait;
use CodeIgniter\Test\CIUnitTestCase;
class PatientDeleteTest extends CIUnitTestCase
{
use FeatureTestTrait;
protected $endpoint = 'api/patient';
// 500 error catch
public function testDeleteWithoutInternalPID() {
$result = $this->withBodyFormat('json')
->delete($this->endpoint, []);
$result->assertStatus(500);
$result->assertJSONFragment([
'status' => 500,
'messages' => [
'error' => 'Internal server error: Undefined array key "InternalPID"'
]
]);
}
// 400
public function testDeleteWitWrongInternalPID() {
$result = $this->withBodyFormat('json')
->delete($this->endpoint, [
// Pilih salah satu
// 'InternalPID' => [],
// 'InternalPID' => 0,
// 'InternalPID' => '0',
// 'InternalPID' => '',
'InternalPID' => null,
]);
$result->assertStatus(400);
$result->assertJSONFragment([
'status' => 'error',
'message' => 'Patient ID must be a valid integer.'
]);
}
// 404 not found
public function testDeleteNotFound() {
$testId = 9999;
$result = $this->withBodyFormat('json')
->delete($this->endpoint, [
'InternalPID' => $testId
]);
$result->assertStatus(404);
$result->assertJSONFragment([
'status' => 404,
'error' => 404,
'messages' => [
'error' => 'Patient ID with '.$testId.' not found.'
]
]);
}
// 200 ok
public function testDeleteSuccess() {
$testId = 3;
// Anggap patient 1 2 3 ada di seed DB
$result = $this->withBodyFormat('json')
->delete($this->endpoint, [
'InternalPID' => $testId
]);
$result->assertStatus(200);
$result->assertJSONFragment([
'status' => 'success',
'message' => 'Patient ID with '.$testId.' deleted successfully.'
]);
}
// 400 - SQL Inject
public function testDeleteServerError() {
// Simulasi: kirim input aneh yang trigger exception
$result = $this->withBodyFormat('json')
->delete($this->endpoint, [
'InternalPID' => "' OR 1=1 --"
]);
$result->assertStatus(400);
$result->assertJSONFragment([
'status' => 'error',
'message' => 'Patient ID must be a valid integer.'
]);
}
}