Compare commits
2
Commits
bf18bf8b68
...
bcac4af2ff
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bcac4af2ff | ||
|
|
a8a5e14278 |
@@ -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)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -12,16 +12,31 @@ func TestParsingDokter(t *testing.T) {
|
||||
expected string
|
||||
}{
|
||||
{
|
||||
data: DokterModel{NamaDepan: shared.NullString("Agus"), NamaBelakang: shared.NullString("Bayu")},
|
||||
expected: "AGUS BAYU",
|
||||
data: DokterModel{
|
||||
NamaDepan: shared.NullString("Agus"),
|
||||
NamaBelakang: shared.NullString("Bayu"),
|
||||
GelarDepan: []string{"Dr", "dr."},
|
||||
GelarBelakang: []string{"Sp.Onk.Rad", "Sp.P(K)"},
|
||||
},
|
||||
expected: "Dr dr. AGUS BAYU Sp.Onk.Rad, Sp.P(K)",
|
||||
},
|
||||
{
|
||||
data: DokterModel{NamaDepan: shared.NullString("Chandra"), NamaBelakang: shared.NullString("Dinata")},
|
||||
expected: "CHANDRA DINATA",
|
||||
data: DokterModel{
|
||||
NamaDepan: shared.NullString("Chandra"),
|
||||
NamaBelakang: shared.NullString("Dinata"),
|
||||
GelarDepan: []string{"dr."},
|
||||
GelarBelakang: []string{"Sp.PD-KR"},
|
||||
},
|
||||
expected: "dr. CHANDRA DINATA Sp.PD-KR",
|
||||
},
|
||||
{
|
||||
data: DokterModel{NamaDepan: shared.NullString("Eka"), NamaBelakang: shared.NullString("Fahmi")},
|
||||
expected: "EKA FAHMI",
|
||||
data: DokterModel{
|
||||
NamaDepan: shared.NullString("Eka"),
|
||||
NamaBelakang: shared.NullString("Fahmi"),
|
||||
GelarDepan: []string{"Prof", "drg."},
|
||||
GelarBelakang: []string{"Sp.KG", "Ph.D"},
|
||||
},
|
||||
expected: "Prof drg. EKA FAHMI Sp.KG, Ph.D",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user