25 lignes
1 Kio
Go
25 lignes
1 Kio
Go
|
package models
|
||
|
|
||
|
import (
|
||
|
"reflect"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/NyaaPantsu/nyaa/config"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func TestTagsType(t *testing.T) {
|
||
|
assert := assert.New(t)
|
||
|
torrent := &Torrent{}
|
||
|
for _, tagConf := range config.Get().Torrents.Tags.Types {
|
||
|
assert.NotEmpty(tagConf.Name, "A name must be provided for a tag type")
|
||
|
assert.NotEmpty(tagConf.Field, "You need to provide a field from the torrent Struct for '%s' tag type in config", tagConf.Name)
|
||
|
if tagConf.Defaults != nil && len(tagConf.Defaults) == 0 {
|
||
|
t.Log("For '%s', you provided a defaults attributes but it is empty. You should remove the attribute or fill it", tagConf.Name)
|
||
|
}
|
||
|
field := reflect.ValueOf(torrent).Elem().FieldByName(tagConf.Field)
|
||
|
assert.True(field.IsValid(), "The field '%s' provided for '%s' doesn't exist", tagConf.Field, tagConf.Name)
|
||
|
// assert.Equal(reflect.String, field.Type().Kind(), "Only string tag types are supported, if you want to make an array do a string splitted by commas for '%s'", tagConf.Name)
|
||
|
}
|
||
|
}
|