test endpoint get

This commit is contained in:
renaldybrada
2026-03-09 11:48:11 +07:00
parent bf18bf8b68
commit a8a5e14278
+116
View File
@@ -0,0 +1,116 @@
package integrationTest
import (
"net/http"
"testing"
)
const BASEURL = "http://localhost:9000/"
func TestGetEndpoint(t *testing.T) {
defaultDashboardParam := "?month=1&year=2025"
endpoints := []string{
"ping",
// references
"api/reference/diagnosa",
"api/reference/dokter",
"api/reference/kategori",
"api/reference/pasien",
"api/reference/spesialis",
"api/reference/sub-spesialis",
"api/reference/tindakan",
// dashboard
"api/dashboard/antrian-per-hari" + defaultDashboardParam,
"api/dashboard/antrian-per-kategori",
"api/dashboard/antrian-per-spesialis",
"api/dashboard/perbandingan-kategori-antrian" + defaultDashboardParam,
"api/dashboard/perbandingan-status-antrian" + defaultDashboardParam,
"api/dashboard/table-antrian-per-spesialis" + defaultDashboardParam,
"api/dashboard/table-antrian-per-subspesialis" + defaultDashboardParam,
// antrian-operasi
"api/antrian-operasi",
}
for _, ep := range endpoints {
t.Run(ep, func(t *testing.T) {
resp, err := http.Get(BASEURL + ep)
if err != nil {
t.Fatalf("endpoint %s error: %v", ep, err)
}
if resp.StatusCode >= 201 {
t.Fatalf("endpoint %s broken : %v", ep, resp.Status)
}
})
}
}
type searchableTest struct {
testcase string
endpoint string
querySearch string
}
func TestSearchableEndpoint(t *testing.T) {
cases := []searchableTest{
{testcase: "search diagnosa list", endpoint: "api/reference/diagnosa", querySearch: "abs"},
{testcase: "search dokter list", endpoint: "api/reference/dokter", querySearch: "agus"},
{testcase: "search kategori list", endpoint: "api/reference/kategori", querySearch: "elektif"},
{testcase: "search pasien list", endpoint: "api/reference/pasien", querySearch: "rudi"},
{testcase: "search spesialis list", endpoint: "api/reference/spesialis", querySearch: "urolog"},
{testcase: "search subspesialis list", endpoint: "api/reference/sub-spesialis", querySearch: "bedah"},
{testcase: "search tindakan list", endpoint: "api/reference/tindakan", querySearch: "procedure"},
{testcase: "search antrian operasi list", endpoint: "api/antrian-operasi", querySearch: "110393243"},
}
for _, c := range cases {
t.Run(c.testcase, func(t *testing.T) {
resp, err := http.Get(BASEURL + c.endpoint + "?search=" + c.querySearch)
if err != nil {
t.Fatalf("endpoint %s error with search %s: %v", c.endpoint, c.querySearch, err)
}
if resp.StatusCode >= 201 {
t.Fatalf("endpoint %s broken : %v", c.endpoint, resp.Status)
}
})
}
}
type antrianOperasiCase struct {
testcase string
queryParams string
}
func TestListAntrianOperasiParams(t *testing.T) {
cases := []antrianOperasiCase{
{testcase: "get all antrian", queryParams: "?type=all"},
{testcase: "get antrian by kategori", queryParams: "?type=kategori&type_id=1"},
{testcase: "get antrian by spesialis", queryParams: "?type=spesialis&type_id=3"},
{testcase: "get antrian by spesialis", queryParams: "?type=spesialis&type_id=4"},
{testcase: "get antrian by sub-spesialis", queryParams: "?type=sub-spesialis&type_id=27"},
{testcase: "get antrian by status 'belum'", queryParams: "?status=1"},
{testcase: "get antrian by status 'sudah'", queryParams: "?status=2"},
{testcase: "get antrian by status 'tunda'", queryParams: "?status=3"},
{testcase: "get antrian by status 'batal'", queryParams: "?status=4"},
}
endpoint := BASEURL + "api/antrian-operasi"
for _, c := range cases {
t.Run(c.testcase, func(t *testing.T) {
resp, err := http.Get(endpoint + c.queryParams)
if err != nil {
t.Fatalf("endpoint %s error: %v", endpoint, err)
}
if resp.StatusCode >= 201 {
t.Fatalf("endpoint %s broken : %v", endpoint, resp.Status)
}
})
}
}