template-monorepo/internal/library/mongo/conf_load_test.go

64 lines
1.1 KiB
Go
Raw Normal View History

package mongo
import (
"testing"
"github.com/zeromicro/go-zero/core/conf"
)
func loadMongoYAML(t *testing.T, snippet string) Conf {
t.Helper()
var cfg struct {
Mongo Conf
}
if err := conf.LoadFromYamlBytes([]byte(snippet), &cfg); err != nil {
t.Fatal(err)
}
return cfg.Mongo
}
func TestLoadMongoConf_hostAndPort(t *testing.T) {
t.Parallel()
c := loadMongoYAML(t, `Mongo:
Host: 127.0.0.1
Port: 27017
Database: gateway
`)
uri, err := buildConnectionURI(c)
if err != nil {
t.Fatal(err)
}
if uri != "mongodb://127.0.0.1:27017" {
t.Fatalf("uri = %q", uri)
}
}
func TestLoadMongoConf_withCompressorsArray(t *testing.T) {
t.Parallel()
c := loadMongoYAML(t, `Mongo:
Host: 127.0.0.1:27017
Database: gateway
Compressors:
- zstd
- snappy
`)
if len(c.Compressors) != 2 {
t.Fatalf("compressors = %v", c.Compressors)
}
}
func TestLoadMongoConf_compressorsStringRejected(t *testing.T) {
t.Parallel()
var cfg struct {
Mongo Conf
}
err := conf.LoadFromYamlBytes([]byte(`Mongo:
Host: 127.0.0.1:27017
Database: gateway
Compressors: zstd
`), &cfg)
if err == nil {
t.Fatal("expected type mismatch for Compressors string")
}
}