From 95c8ba5699efa80fc19f7e210bcf4d1e189244e2 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Sat, 11 Jan 2025 14:14:15 +0700 Subject: all: add options for Client Currently, the options contains Debug field that print the HTML response as text when set to 1. --- client_test.go | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) (limited to 'client_test.go') diff --git a/client_test.go b/client_test.go index fa9e3c7..2f429e8 100644 --- a/client_test.go +++ b/client_test.go @@ -6,6 +6,8 @@ package kbbi import ( "os" "testing" + + "git.sr.ht/~shulhan/pakakeh.go/lib/test" ) func TestClient_parseHTMLKataDasar(t *testing.T) { @@ -14,7 +16,9 @@ func TestClient_parseHTMLKataDasar(t *testing.T) { t.Fatal(err) } - cl, err := NewClient() + var opts ClientOptions + + cl, err := NewClient(opts) if err != nil { t.Fatal(err) } @@ -26,3 +30,60 @@ func TestClient_parseHTMLKataDasar(t *testing.T) { t.Logf("Root words: %v", got) } + +func TestClient_parseHTMLEntri(t *testing.T) { + cases := []struct { + exp *Word + infile string + cari string + }{{ + infile: "testdata/entri.html", + cari: "informasi", + exp: &Word{ + Definition: []*WordDefinition{{ + Value: "penerangan", + Classes: []string{"Nomina: kata benda"}, + }, { + Value: "pemberitahuan; kabar atau berita tentang sesuatu", + Classes: []string{"Nomina: kata benda"}, + }, { + Value: "keseluruhan makna yang menunjang amanat yang " + + "terlihat dalam bagian-bagian " + + "amanat itu", + Classes: []string{ + "Nomina: kata benda", + "Linguistik: -", + }, + }}, + }, + }, { + infile: "testdata/entri_analisa.html", + cari: "analisa", + exp: &Word{ + Message: `"analisa" adalah bentuk tidak baku dari "analisis"`, + }, + }} + + cl, err := NewClient(ClientOptions{}) + if err != nil { + t.Fatal(err) + } + + for _, c := range cases { + htmlBody, err := os.ReadFile(c.infile) + if err != nil { + t.Fatal(err) + } + + got, err := cl.parseHTMLEntri(c.cari, htmlBody) + if err != nil { + t.Fatal(err) + } + + for x, def := range c.exp.Definition { + test.Assert(t, `Definition`, def, got.Definition[x]) + } + + test.Assert(t, c.infile, c.exp, got) + } +} -- cgit v1.3