bottin/client_test.go

156 lines
3 KiB
Go
Raw Normal View History

package main
import (
"crypto/tls"
"net/http"
"testing"
"codeberg.org/vlbeaudoin/voki/v3"
"github.com/spf13/viper"
)
2024-06-17 14:07:49 -04:00
func init() {
initConfig()
}
func TestAPI(t *testing.T) {
var cfg Config
if err := viper.Unmarshal(&cfg); err != nil {
t.Error(err)
return
}
//httpClient := http.DefaultClient
//defer httpClient.CloseIdleConnections()
transport := http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
}
httpClient := http.Client{
Transport: &transport,
}
defer httpClient.CloseIdleConnections()
vokiClient := voki.New(&httpClient, "localhost", cfg.Client.API.Key, cfg.Client.API.Port, cfg.Client.API.Protocol)
apiClient := APIClient{vokiClient}
t.Run("get API health", func(t *testing.T) {
health, err := apiClient.GetHealth()
if err != nil {
t.Error(err)
}
want := "ok"
got := health
if want != got {
t.Errorf("want=%s got=%s", want, got)
}
})
2024-06-17 14:07:49 -04:00
t.Run("insert programmes",
func(t *testing.T) {
programmes := []Programme{
{"404.42", "Cool programme"},
{"200.10", "Autre programme"},
}
t.Log("programmes:", programmes)
_, err := apiClient.InsertProgrammes(programmes...)
if err != nil {
t.Error(err)
}
})
testMembres := []Membre{
{
ID: "0000000",
FirstName: "Test",
LastName: "User",
ProgrammeID: "404.42",
},
{
ID: "1234567",
FirstName: "Deadname",
LastName: "User",
PreferedName: "User, Test-Name",
ProgrammeID: "200.10",
},
}
t.Run("get programmes, max 50",
func(t *testing.T) {
programmes, err := apiClient.GetProgrammes(50)
if err != nil {
t.Error(err)
}
t.Log(programmes)
})
t.Run("insert membres",
func(t *testing.T) {
_, err := apiClient.InsertMembres(testMembres...)
if err != nil {
t.Error(err)
}
})
t.Run("get membre",
func(t *testing.T) {
membre, err := apiClient.GetMembre(testMembres[0].ID)
if err != nil {
t.Error(err)
}
want := testMembres[0].LastName
got := membre.LastName
if want != got {
t.Errorf("want=%s got=%s", want, got)
}
})
t.Run("get invalid membre",
func(t *testing.T) {
_, err := apiClient.GetMembre("invalid")
if err == nil {
t.Error("`invalid` should not have been accepted as value to GetMembre, but did")
}
})
t.Run("update membre prefered name",
func(t *testing.T) {
if err := apiClient.UpdateMembrePreferedName(testMembres[0].ID, "User, Galaxy"); err != nil {
t.Error(err)
}
})
2024-06-18 21:21:30 -04:00
t.Run("get membres, max 50",
func(t *testing.T) {
membres, err := apiClient.GetMembres(50)
if err != nil {
t.Error(err)
}
t.Log(membres)
})
t.Run("get membre for display",
func(t *testing.T) {
membre, err := apiClient.GetMembreForDisplay(testMembres[0].ID)
if err != nil {
t.Error(err)
}
t.Log(membre)
})
t.Run("get membres for display, max 5",
func(t *testing.T) {
membres, err := apiClient.GetMembresForDisplay(5)
if err != nil {
t.Error(err)
}
t.Log(membres)
})
}