Add test for settings.go
This commit is contained in:
parent
2658767d72
commit
10f3c11c61
61
internal/config/settings_test.go
Normal file
61
internal/config/settings_test.go
Normal file
|
@ -0,0 +1,61 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestNewSettings(t *testing.T) {
|
||||
c := NewSettings()
|
||||
assert.IsType(t, new(Settings), c)
|
||||
}
|
||||
|
||||
func TestSettings_SetValuesFromFile(t *testing.T) {
|
||||
t.Run("existing filename", func(t *testing.T) {
|
||||
c := NewSettings()
|
||||
|
||||
err := c.SetValuesFromFile("testdata/config.yml")
|
||||
|
||||
assert.Nil(t, err)
|
||||
|
||||
assert.Equal(t, "lavendel", c.Theme)
|
||||
assert.Equal(t, "english", c.Language)
|
||||
})
|
||||
t.Run("not existing filename", func(t *testing.T) {
|
||||
c := NewSettings()
|
||||
|
||||
err := c.SetValuesFromFile("testdata/config123.yml")
|
||||
|
||||
assert.Error(t, err)
|
||||
|
||||
assert.Equal(t, "", c.Theme)
|
||||
assert.Equal(t, "", c.Language)
|
||||
})
|
||||
}
|
||||
func TestSettings_WriteValuesToFile(t *testing.T) {
|
||||
t.Run("existing filename", func(t *testing.T) {
|
||||
c := NewSettings()
|
||||
c.Theme = "lavendel"
|
||||
c.Language = "german"
|
||||
|
||||
assert.Equal(t, "lavendel", c.Theme)
|
||||
assert.Equal(t, "german", c.Language)
|
||||
|
||||
err := c.WriteValuesToFile("testdata/configEmpty.yml")
|
||||
|
||||
assert.Nil(t, err)
|
||||
})
|
||||
t.Run("not existing filename", func(t *testing.T) {
|
||||
c := NewSettings()
|
||||
c.Theme = "lavendel"
|
||||
c.Language = "german"
|
||||
|
||||
assert.Equal(t, "lavendel", c.Theme)
|
||||
assert.Equal(t, "german", c.Language)
|
||||
|
||||
err := c.WriteValuesToFile("testdata/configEmpty123.yml")
|
||||
|
||||
assert.Error(t, err)
|
||||
})
|
||||
}
|
2
internal/config/testdata/config.yml
vendored
2
internal/config/testdata/config.yml
vendored
|
@ -14,3 +14,5 @@ http-port: 81
|
|||
http-password:
|
||||
database-driver: internal
|
||||
database-dsn: root:photoprism@tcp(localhost:4000)/photoprism?parseTime=true
|
||||
theme: lavendel
|
||||
language: english
|
||||
|
|
2
internal/config/testdata/configEmpty.yml
vendored
Normal file
2
internal/config/testdata/configEmpty.yml
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
theme: lavendel
|
||||
language: german
|
Loading…
Reference in a new issue