добавлены тесты для конфиг парсера

This commit is contained in:
Sergey Chubaryan 2024-07-27 17:31:41 +03:00
parent 9002151739
commit 843695f3f9
2 changed files with 48 additions and 2 deletions

43
config/config_test.go Normal file
View File

@ -0,0 +1,43 @@
package config
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
)
const testParserConf = `
token: "test_token"
url: test.url
port: 5010
`
type TestConf struct {
Token string `yaml:"token"`
Url string `yaml:"url"`
Port int `yaml:"port"`
}
func TestParser(t *testing.T) {
file, err := os.CreateTemp("", "config")
if err != nil {
t.Fatal(err)
}
defer file.Close()
_, err = file.WriteString(testParserConf)
if err != nil {
t.Fatal(err)
}
p := NewParser[TestConf]()
conf, err := p.ParseFile(file.Name())
if err != nil {
t.Fatal(err)
}
assert.Equal(t, "test_token", conf.Token)
assert.Equal(t, "test.url", conf.Url)
assert.Equal(t, 5010, conf.Port)
}

7
go.mod
View File

@ -4,9 +4,12 @@ go 1.22.5
require (
github.com/gin-gonic/gin v1.10.0
github.com/go-playground/validator/v10 v10.22.0
github.com/golang-jwt/jwt/v5 v5.2.1
github.com/jackc/pgx v3.6.2+incompatible
github.com/stretchr/testify v1.9.0
golang.org/x/crypto v0.25.0
gopkg.in/yaml.v3 v3.0.1
)
require (
@ -15,11 +18,11 @@ require (
github.com/cloudwego/base64x v0.1.4 // indirect
github.com/cloudwego/iasm v0.2.0 // indirect
github.com/cockroachdb/apd v1.1.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/gabriel-vasile/mimetype v1.4.4 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.22.0 // indirect
github.com/goccy/go-json v0.10.3 // indirect
github.com/gofrs/uuid v4.4.0+incompatible // indirect
github.com/jackc/fake v0.0.0-20150926172116-812a484cc733 // indirect
@ -33,6 +36,7 @@ require (
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.12 // indirect
@ -42,5 +46,4 @@ require (
golang.org/x/text v0.16.0 // indirect
google.golang.org/protobuf v1.34.2 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)