Files
ProjectKP/Laravel_KP/test_endpoints.php
T
2026-06-28 15:14:51 +07:00

96 lines
3.7 KiB
PHP

<?php
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
function testApi($kernel, $method, $uri, $data = [], $token = null) {
$server = ['HTTP_ACCEPT' => 'application/json'];
if ($token) {
$server['HTTP_AUTHORIZATION'] = 'Bearer ' . $token;
}
$request = Illuminate\Http\Request::create($uri, $method, $data, [], [], $server);
$response = $kernel->handle($request);
$status = $response->getStatusCode();
$content = json_decode($response->getContent(), true);
if ($status >= 400 && $status !== 422) { // 422 is expected for some negative tests
echo "FAIL: [$method] $uri returned $status\n";
echo "Response: " . $response->getContent() . "\n\n";
} else {
echo "PASS: [$method] $uri returned $status\n";
}
return ['status' => $status, 'data' => $content];
}
echo "--- STARTING API TESTS ---\n";
// 1. LOGIN PEGawai
$res = testApi($kernel, 'POST', '/api/login', ['username' => 'hari_disnaker', 'password' => 'password123']);
$userToken = $res['data']['data']['token'] ?? null;
// 2. LOGIN ADMIN
$res = testApi($kernel, 'POST', '/api/login', ['username' => 'welprida_admin', 'password' => 'password123']);
$adminToken = $res['data']['data']['token'] ?? null;
// 3. LOGIN SUPERADMIN
$res = testApi($kernel, 'POST', '/api/login', ['username' => 'sutowo_superadmin', 'password' => 'password123']);
$superToken = $res['data']['data']['token'] ?? null;
if (!$userToken || !$adminToken || !$superToken) {
die("Tokens missing, cannot proceed.\n");
}
// --- PEGAWAI TESTS ---
echo "\n--- ROLE: PEGAWAI ---\n";
testApi($kernel, 'GET', '/api/dashboard', [], $userToken);
testApi($kernel, 'GET', '/api/penugasan', [], $userToken);
$createTask = testApi($kernel, 'POST', '/api/penugasan', [
'kegiatan' => 'Tugas Testing',
'tanggal_mulai' => '2026-06-01',
'pegawai_ids' => [4] // hari_disnaker ID is likely 4
], $userToken);
$taskId = $createTask['data']['data']['id'] ?? null;
if ($taskId) {
testApi($kernel, 'GET', '/api/penugasan/' . $taskId, [], $userToken);
testApi($kernel, 'PUT', '/api/penugasan/' . $taskId, [
'kegiatan' => 'Tugas Testing Updated',
'tanggal_mulai' => '2026-06-01',
'pegawai_ids' => [4]
], $userToken);
testApi($kernel, 'POST', '/api/penugasan/' . $taskId . '/update-status', ['status' => 'selesai'], $userToken);
}
// --- ADMIN TESTS ---
echo "\n--- ROLE: ADMIN ---\n";
testApi($kernel, 'GET', '/api/dashboard', [], $adminToken);
testApi($kernel, 'GET', '/api/users', [], $adminToken);
testApi($kernel, 'GET', '/api/pegawai', [], $adminToken);
// Create User
$createUser = testApi($kernel, 'POST', '/api/register', [
'name' => 'User Test',
'username' => 'usertest_'.time(),
'email' => 'usertest'.time().'@mail.com',
'password' => 'password123',
'role' => 'user'
], $adminToken);
$newUserId = $createUser['data']['user']['id'] ?? null;
if ($newUserId) {
testApi($kernel, 'PUT', '/api/users/' . $newUserId, ['name' => 'User Test Updated', 'role' => 'user'], $adminToken);
testApi($kernel, 'DELETE', '/api/users/' . $newUserId, [], $adminToken);
}
// --- SUPER ADMIN TESTS ---
echo "\n--- ROLE: SUPER ADMIN ---\n";
testApi($kernel, 'GET', '/api/dashboard', [], $superToken);
if ($taskId) {
testApi($kernel, 'POST', '/api/penugasan/' . $taskId . '/update-status', ['status' => 'telah_ditinjau'], $superToken);
testApi($kernel, 'POST', '/api/penugasan/' . $taskId . '/delete', ['alasan' => 'Dibatalkan karena testing selesai'], $superToken);
}
testApi($kernel, 'GET', '/api/export-penugasan', [], $superToken);
echo "\n--- TESTS COMPLETED ---\n";