117 lines
3.6 KiB
Go
117 lines
3.6 KiB
Go
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)
|
|
}
|
|
})
|
|
}
|
|
}
|