Files
api-antrian-operasi/internal/domain/reference/dokter/dokter_test.go
T
2026-03-09 11:48:26 +07:00

69 lines
2.0 KiB
Go

package dokter
import (
"antrian-operasi/internal/shared"
"database/sql"
"testing"
)
func TestParsingDokter(t *testing.T) {
testData := []struct {
data DokterModel
expected string
}{
{
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"),
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"),
GelarDepan: []string{"Prof", "drg."},
GelarBelakang: []string{"Sp.KG", "Ph.D"},
},
expected: "Prof drg. EKA FAHMI Sp.KG, Ph.D",
},
}
t.Run("test parsing nama lengkap dokter", func(t *testing.T) {
for _, tt := range testData {
response := tt.data.ToResponse()
if response.NamaLengkap != tt.expected {
t.Fatalf("expected %v got %v", tt.expected, response.NamaLengkap)
}
}
})
}
func TestParsingListDokter(t *testing.T) {
listModel := ListDokterModel{
DokterModel{"test-id-1", "test-nip-1", shared.NullString("A"), shared.NullString("B"), sql.NullString{}, "test-ksm-1", []string{}, []string{}},
DokterModel{"test-id-2", "test-nip-2", shared.NullString("C"), shared.NullString("D"), sql.NullString{}, "test-ksm-2", []string{}, []string{}},
DokterModel{"test-id-3", "test-nip-3", shared.NullString("E"), shared.NullString("F"), sql.NullString{}, "test-ksm-3", []string{}, []string{}},
}
t.Run("test length model list and list response", func(t *testing.T) {
response := listModel.ToResponseList()
if len(listModel) != len(response) {
t.Fatalf("length difference between model and response")
}
})
}