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! ✅

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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