Skip to content

E2E API Testing Plan & Postman Guide #11

Description

@LearnProgrammingDev

Panduan Pengujian API (Postman / cURL)

Dokumen ini berisi daftar keseluruhan endpoint yang ada di dalam aplikasi vibe-engineering beserta testing plan (skenario pengujian) end-to-end. Gunakan panduan ini untuk melakukan verifikasi via Postman.

Konfigurasi Dasar

  • Base URL: http://localhost:3000
  • Content-Type: Atur konfigurasi Body pada setiap perintah POST/PUT menggunakan format application/json (Raw JSON).

📋 Daftar Seluruh Endpoint

1. Root & Debugging

  • GET / : Endpoint health-check murni dari ElysiaJS.
  • GET /users : Menampilkan seluruh detail baris pengguna di tabel database users.

2. Autentikasi (Auth)

POST /api/v1/auth/register

  • Tujuan: Mendaftarkan pengguna baru ke platform.
  • Body Requirement (JSON):
    {
      "name": "John Doe",
      "email": "johndoe@example.com",
      "password": "secretpassword"
    }
  • Ekspektasi Respon (Sukses):
    {
      "status": "success",
      "message": "User created successfully",
      "data": {
        "id": 1,
        "name": "John Doe",
        "email": "johndoe@example.com",
        "created_at": "2026-04-04T07:00:00.000Z"
      }
    }

POST /api/v1/auth/login

  • Tujuan: Masuk/Log In untuk mendapatkan token session (UUID).
  • Body Requirement (JSON):
    {
      "email": "johndoe@example.com",
      "password": "secretpassword"
    }
  • Ekspektasi Respon (Sukses):
    {
      "status": "success",
      "message": "User logged in successfully",
      "data": {
        "id": 1,
        "name": "John Doe",
        "email": "johndoe@example.com",
        "token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "created_at": "2026-04-04T07:00:00.000Z"
      }
    }
  • Catatan Penting: Simpan nilai data.token dari balikan JSON di atas karena wajib dilampirkan menggunakan skema Bearer pada API yang diproteksi.

3. Modul Pengguna Privat (Users)

GET /api/v1/users/me

  • Tujuan: Menarik detail (id, name, email) profil diri current user berdasarkan kecocokan sesi database.
  • Header Dibutuhkan:
    • Authorization: Bearer <token_dari_hasil_login>
  • Ekspektasi Respon (Sukses):
    {
      "status": "success",
      "message": "User fetched successfully",
      "data": {
        "id": 1,
        "name": "John Doe",
        "email": "johndoe@example.com",
        "created_at": "2026-04-04T07:00:00.000Z"
      }
    }

DELETE /api/v1/users/logout

  • Tujuan: Mengakhiri sesi user dan menghancurkan token tersebut dari tabel session secara permanen.
  • Header Dibutuhkan:
    • Authorization: Bearer <token_dari_hasil_login>
  • Ekspektasi Respon (Sukses):
    {
      "status": "success",
      "message": "Logout successful",
      "data": "ok"
    }

🧪 Skenario Pengujian Menyeluruh (Testing Plan E2E)

Untuk menguji apakah alur pendaftaran, otorisasi, dan perusakan sesi bekerja sempurna sebelum merilis aplikasi, ikuti urutan langkah-langkah berikut di Workspace Postman Anda:

Langkah 1: Coba Buat Akun

  • Melalui endpoint POST /api/v1/auth/register, buat pengguna baru.
  • Ekspektasi (Sukses): Tercipta secara mandiri di balikan status HTTP 201.
  • Ekspektasi (Gagal): Kirim ulang request pendaftaran yang sama (email duplikat). Sistem harus menolak dengan respons "User already exists".

Langkah 2: Ambil Tiket Akses (Token)

  • Tembak endpoint POST /api/v1/auth/login menggunakan email/password yang terdaftar di Langkah 1.
  • Anda akan menerima format balikan. Amati field data.token.
  • Salin token tersebut (Copy).

Langkah 3: Validasi Blokir (Keamanan Endpoint Privat)

  • Lakukan request GET /api/v1/users/me di tab Postman baru TANPA menyelipkan Bearer Token di bagian header.
  • Ekspektasi: Aplikasi merespons error "an authorization header is missing or invalid" dengan HTTP Status 401 Unauthorized.

Langkah 4: Akses Endpoint Privat Menggunakan Kunci Valid

  • Pada request GET /me yang sama di Langkah 3, arahkan ke opsi Headers / Authorization dan masukkan tipe JWT/Bearer Token dengan nilai yang tadi disalin.
  • Atur ulang dan lakukan request kembali.
  • Ekspektasi: Endpoint ini berhasil mendeteksi identitas dan mengembalikan objek JSON berisi profil (termasuk nama profil "John Doe" tadi).

Langkah 5: Penindakan Penghapusan Sesi (Logout)

  • Gunakan token Authorization/Bearer yang sama, tembak endpoint akhir DELETE /api/v1/users/logout.
  • Ekspektasi: Server mengembalikan objek yang menginformasikan data: ok / Logout successful. Seiring waktu respon, entitas session rahasia telah tercabut bersih dari database.

Langkah 6: Validasi Akhir

  • Saat sesi dinyatakan aman terhapus, token yang tadi valid kini berubah menjadi akses usang.
  • Kembalilah ke request GET /api/v1/users/me dengan token yang sama persis. Tembak ulang API tersebut.
  • Ekspektasi: Permintaan secara paksa kembali ditolak dengan respons 401 Unauthorized. Berbeda dengan panggilannya di Langkah 4 yang tadi diterima.

Kesimpulan: Jika 6 langkah (Fase Pendaftaran ➡️ Fase Penguncian (Login) ➡️ Fase Validasi (Get Current User) ➡️ Fase Evaluasi Perusakan (Logout)) terlewati dengan mulus tanpa kendala—maka integrasi backend api dapat dinyatakan Sukses / Passed! ✅

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions