0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-11-08 20:32:29 +01:00

feat: adds unit tests and remove prints

This commit is contained in:
Mark Brown 2025-10-16 20:57:13 -04:00
parent bc430bb330
commit 734daa9684
No known key found for this signature in database
4 changed files with 100 additions and 15 deletions

View File

@ -19,14 +19,14 @@ const gravatarSource = "https://secure.gravatar.com/avatar/"
func disableGravatar(t *testing.T) { func disableGravatar(t *testing.T) {
err := system_model.SetSettings(t.Context(), map[string]string{setting.Config().Picture.EnableFederatedAvatar.DynKey(): "false"}) err := system_model.SetSettings(t.Context(), map[string]string{setting.Config().Picture.EnableFederatedAvatar.DynKey(): "false"})
assert.NoError(t, err) assert.NoError(t, err)
// EnableGravatar.DynKey == picture.disable_gravatar for backwards compatability; .Value will flip correctly but the true value here is misleading // EnableGravatar.SelectFrom == picture.disable_gravatar for backwards compatability; .Value will flip correctly but the true value here is counterintuitive
err = system_model.SetSettings(t.Context(), map[string]string{setting.Config().Picture.EnableGravatar.DynKey(): "true"}) err = system_model.SetSettings(t.Context(), map[string]string{setting.Config().Picture.EnableGravatar.SelectFromKey(): "true"})
assert.NoError(t, err) assert.NoError(t, err)
} }
func enableGravatar(t *testing.T) { func enableGravatar(t *testing.T) {
// EnableGravatar.DynKey == picture.disable_gravatar for backwards compatability; .Value will flip correctly but the false value here is misleading // EnableGravatar.SelectFrom == picture.disable_gravatar for backwards compatability; .Value will flip correctly but the false value here is counterintuitive
err := system_model.SetSettings(t.Context(), map[string]string{setting.Config().Picture.EnableGravatar.DynKey(): "false"}) err := system_model.SetSettings(t.Context(), map[string]string{setting.Config().Picture.EnableGravatar.SelectFromKey(): "false"})
assert.NoError(t, err) assert.NoError(t, err)
setting.GravatarSource = gravatarSource setting.GravatarSource = gravatarSource
} }

View File

@ -58,8 +58,8 @@ type ConfigStruct struct {
} }
var ( var (
defaultConfig *ConfigStruct defaultConfig *ConfigStruct
ConfigOnce sync.Once defaultConfigOnce sync.Once
) )
func initDefaultConfig() { func initDefaultConfig() {
@ -77,7 +77,7 @@ func initDefaultConfig() {
} }
func Config() *ConfigStruct { func Config() *ConfigStruct {
ConfigOnce.Do(initDefaultConfig) defaultConfigOnce.Do(initDefaultConfig)
return defaultConfig return defaultConfig
} }

View File

@ -5,7 +5,6 @@ package config
import ( import (
"context" "context"
"fmt"
"sync" "sync"
"code.gitea.io/gitea/modules/json" "code.gitea.io/gitea/modules/json"
@ -50,7 +49,6 @@ func (value *Value[T]) invertBoolStr(val string) (inverted string) {
func (value *Value[T]) invert(val T) (v T) { func (value *Value[T]) invert(val T) (v T) {
v = val v = val
if value.flipBoolean { if value.flipBoolean {
fmt.Printf("Flipping boolean value '%v'...\n", val)
// if value is of type bool // if value is of type bool
if _, ok := any(val).(bool); ok { if _, ok := any(val).(bool); ok {
// invert the boolean value upon retrieval // invert the boolean value upon retrieval
@ -151,8 +149,6 @@ func (value *Value[any]) SetValue(val string) error {
panic("no config dyn value getter") panic("no config dyn value getter")
} }
fmt.Printf("Setting value '%s' with old key '%s' using key '%s'\n", val, value.selectFromKey, value.dynKey)
if value.flipBoolean { if value.flipBoolean {
return ds.SetValue(ctx, value.getKey(), value.invertBoolStr(val)) return ds.SetValue(ctx, value.getKey(), value.invertBoolStr(val))
} }

View File

@ -24,7 +24,7 @@ func TestValue_parse(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
value := ValueJSON[bool]("picture.disable_gravatar").WithFileConfig(CfgSecKey{Sec: "picture", Key: "DISABLE_GRAVATAR"}).Invert() value := ValueJSON[bool]("picture.disable_gravatar").Invert()
got := value.parse(tt.key, tt.valStr) got := value.parse(tt.key, tt.valStr)
if got != tt.want { if got != tt.want {
@ -42,12 +42,12 @@ func TestValue_getKey(t *testing.T) {
}{ }{
{ {
name: "Custom dynKey name", name: "Custom dynKey name",
valueClass: ValueJSON[bool]("picture.enable_gravatar").SelectFrom("picture.disable_gravatar").WithFileConfig(CfgSecKey{Sec: "", Key: ""}), valueClass: ValueJSON[bool]("picture.enable_gravatar").SelectFrom("picture.disable_gravatar"),
want: "picture.enable_gravatar", want: "picture.disable_gravatar",
}, },
{ {
name: "Normal dynKey name", name: "Normal dynKey name",
valueClass: ValueJSON[bool]("picture.disable_gravatar").WithFileConfig(CfgSecKey{Sec: "", Key: ""}), valueClass: ValueJSON[bool]("picture.disable_gravatar"),
want: "picture.disable_gravatar", want: "picture.disable_gravatar",
}, },
} }
@ -61,3 +61,92 @@ func TestValue_getKey(t *testing.T) {
}) })
} }
} }
func TestValue_invert(t *testing.T) {
tests := []struct {
name string // description of this test case
// Named input parameters for target function.
valueClass *Value[bool]
want bool
}{
{
name: "Invert typed true",
valueClass: ValueJSON[bool]("picture.enable_gravatar").WithDefault(true).Invert(),
want: false,
},
{
name: "Invert typed false",
valueClass: ValueJSON[bool]("picture.enable_gravatar").WithDefault(false).Invert(),
want: true,
},
{
name: "Invert typed Does not invert",
valueClass: ValueJSON[bool]("picture.enable_gravatar").WithDefault(false),
want: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.valueClass.invert(tt.valueClass.def)
if got != tt.want {
t.Errorf("invert() = %v, want %v", got, tt.want)
}
})
}
}
func TestValue_invertBoolStr(t *testing.T) {
tests := []struct {
name string // description of this test case
// Named input parameters for target function.
valueClass *Value[bool]
val string
want string
}{
{
name: "Invert boolean string true",
valueClass: ValueJSON[bool]("picture.enable_gravatar"),
val: "true",
want: "false",
},
{
name: "Invert boolean string false",
valueClass: ValueJSON[bool]("picture.enable_gravatar"),
val: "false",
want: "true",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.valueClass.invertBoolStr(tt.val)
if got != tt.want {
t.Errorf("invertBoolStr() = %v, want %v", got, tt.want)
}
})
}
}
func TestValue_SelectFromKey(t *testing.T) {
tests := []struct {
name string // description of this test case
// Named input parameters for target function.
valueClass *Value[bool]
want string
}{
{
name: "SelectFrom set and get",
valueClass: ValueJSON[bool]("picture.enable_gravatar").SelectFrom("picture.disable_gravatar"),
want: "picture.disable_gravatar",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.valueClass.SelectFromKey()
if got != tt.want {
t.Errorf("SelectFromKey() = %v, want %v", got, tt.want)
}
})
}
}