1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-08 05:47:07 +09:00

add tests

This commit is contained in:
Roman Khafizianov 2023-06-23 18:46:16 +02:00
parent 37d4ad4527
commit 71cd4d12ea
No known key found for this signature in database
GPG key ID: F07A7D55A2684852
2 changed files with 90 additions and 12 deletions

View file

@ -47,20 +47,18 @@ func LevelsFromStr(s string) (levels []logger.NamedLevel) {
var key, value string
if len(parts) == 1 {
key = "*"
value = parts[0]
if value == "" {
continue
}
_, err := zap.ParseAtomicLevel(value)
if err != nil {
fmt.Printf("Can't parse log level %s: %s\n", parts[0], err.Error())
continue
}
levels = append(levels, logger.NamedLevel{Name: key, Level: value})
value = strings.TrimSpace(parts[0])
} else if len(parts) == 2 {
key = parts[0]
value = parts[1]
key = strings.TrimSpace(parts[0])
value = strings.TrimSpace(parts[1])
} else {
fmt.Printf("invalid log level format. It should be something like `prefix*=LEVEL;*suffix=LEVEL`, where LEVEL is one of valid log levels\n")
continue
}
if key == "" || value == "" {
continue
}
_, err := zap.ParseAtomicLevel(value)
if err != nil {
fmt.Printf("Can't parse log level %s: %s\n", parts[0], err.Error())

View file

@ -0,0 +1,80 @@
package logging
import (
"reflect"
"testing"
"github.com/anyproto/any-sync/app/logger"
"github.com/stretchr/testify/assert"
)
func TestLevelsFromStr(t *testing.T) {
tests := []struct {
name string
arg string
want []logger.NamedLevel
}{
{
name: "Correct Input",
arg: "name1=DEBUG;prefix*=WARN;*=ERROR",
want: []logger.NamedLevel{
{Name: "name1", Level: "DEBUG"},
{Name: "prefix*", Level: "WARN"},
{Name: "*", Level: "ERROR"},
},
},
{
name: "Correct Input with whitespaces",
arg: "name1 = DEBUG ; prefix* = WARN; *= ERROR",
want: []logger.NamedLevel{
{Name: "name1", Level: "DEBUG"},
{Name: "prefix*", Level: "WARN"},
{Name: "*", Level: "ERROR"},
},
},
{
name: "Extra semicolon",
arg: "name1=DEBUG;prefix*=WARN;*=ERROR;",
want: []logger.NamedLevel{
{Name: "name1", Level: "DEBUG"},
{Name: "prefix*", Level: "WARN"},
{Name: "*", Level: "ERROR"},
},
},
{
name: "Invalid level",
arg: "name1=DEBUG;prefix*=WARN;*=INVALID",
want: []logger.NamedLevel{
{Name: "name1", Level: "DEBUG"},
{Name: "prefix*", Level: "WARN"},
},
},
{
name: "Empty",
arg: "",
want: nil,
},
{
name: "spaces",
arg: " ",
want: nil,
},
{
name: "invalid assignment",
arg: "a=b=c=d",
want: nil,
},
{
name: "wtf",
arg: " ;fsg;;gf;gf;gd;gd;g;fd;dfg;;gfd----gd-gfd-g-gdf-gd-g-gd-fg-====gdf=gf==;;;==;=;=;=;=g ",
want: nil,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := LevelsFromStr(tt.arg)
assert.True(t, reflect.DeepEqual(got, tt.want), "LevelsFromStr() = %v, want %v", got, tt.want)
})
}
}