Tests: Add unit tests
This commit is contained in:
parent
34066da2de
commit
71c30e4218
17
internal/entity/auth_user_report_test.go
Normal file
17
internal/entity/auth_user_report_test.go
Normal file
|
@ -0,0 +1,17 @@
|
|||
package entity
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestUser_Report(t *testing.T) {
|
||||
m := FindUserByName("alice")
|
||||
|
||||
r, _ := m.Report(false)
|
||||
assert.GreaterOrEqual(t, len(r), 1)
|
||||
|
||||
r2, _ := m.Report(true)
|
||||
assert.GreaterOrEqual(t, len(r2), 1)
|
||||
}
|
224
internal/entity/auth_user_settings_test.go
Normal file
224
internal/entity/auth_user_settings_test.go
Normal file
|
@ -0,0 +1,224 @@
|
|||
package entity
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/photoprism/photoprism/internal/customize"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestCreateUserSettings(t *testing.T) {
|
||||
t.Run("Empty UID", func(t *testing.T) {
|
||||
m := &User{UserUID: ""}
|
||||
assert.Error(t, CreateUserSettings(m))
|
||||
assert.Nil(t, m.UserSettings)
|
||||
})
|
||||
t.Run("Success", func(t *testing.T) {
|
||||
m := &User{UserUID: "1234"}
|
||||
err := CreateUserSettings(m)
|
||||
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
assert.NotNil(t, m.UserSettings)
|
||||
})
|
||||
}
|
||||
|
||||
func TestUserSettings_HasID(t *testing.T) {
|
||||
u := FindUserByName("alice")
|
||||
assert.True(t, u.UserSettings.HasID())
|
||||
}
|
||||
|
||||
func TestUserSettings_Updates(t *testing.T) {
|
||||
m := &User{
|
||||
UserUID: "1234",
|
||||
UserSettings: &UserSettings{
|
||||
UITheme: "carbon",
|
||||
UILanguage: "de",
|
||||
}}
|
||||
|
||||
m.UserSettings.Updates(UserSettings{UITheme: "vanta", UILanguage: "en"})
|
||||
assert.Equal(t, "vanta", m.UserSettings.UITheme)
|
||||
assert.Equal(t, "en", m.UserSettings.UILanguage)
|
||||
}
|
||||
|
||||
func TestUserSettings_Apply(t *testing.T) {
|
||||
m := &UserSettings{
|
||||
UITheme: "carbon",
|
||||
UILanguage: "de",
|
||||
}
|
||||
|
||||
s := &customize.Settings{
|
||||
UI: customize.UISettings{
|
||||
Theme: "onyx",
|
||||
Language: "nl",
|
||||
TimeZone: "Europe/Berlin",
|
||||
},
|
||||
Download: customize.DownloadSettings{
|
||||
Name: "file",
|
||||
Disabled: false,
|
||||
Originals: true,
|
||||
MediaRaw: false,
|
||||
MediaSidecar: true,
|
||||
},
|
||||
Maps: customize.MapsSettings{
|
||||
Animate: 1,
|
||||
Style: "outdoor",
|
||||
},
|
||||
Index: customize.IndexSettings{
|
||||
Path: "index-path",
|
||||
Convert: true,
|
||||
Rescan: true,
|
||||
SkipArchived: false,
|
||||
},
|
||||
Import: customize.ImportSettings{
|
||||
Path: "imports/2023",
|
||||
Move: false,
|
||||
},
|
||||
}
|
||||
r := m.Apply(s)
|
||||
|
||||
assert.Equal(t, "nl", r.UILanguage)
|
||||
assert.Equal(t, "onyx", r.UITheme)
|
||||
assert.Equal(t, "Europe/Berlin", r.UITimeZone)
|
||||
assert.Equal(t, -1, r.DownloadMediaRaw)
|
||||
assert.Equal(t, 1, r.DownloadOriginals)
|
||||
assert.Equal(t, 1, r.DownloadMediaSidecar)
|
||||
assert.Equal(t, "outdoor", r.MapsStyle)
|
||||
assert.Equal(t, 1, r.MapsAnimate)
|
||||
assert.Equal(t, 1, r.IndexRescan)
|
||||
assert.Equal(t, "index-path", r.IndexPath)
|
||||
assert.Equal(t, -1, r.ImportMove)
|
||||
assert.Equal(t, "imports/2023", r.ImportPath)
|
||||
|
||||
s2 := &customize.Settings{
|
||||
Download: customize.DownloadSettings{
|
||||
Name: "file",
|
||||
Disabled: false,
|
||||
Originals: false,
|
||||
MediaRaw: true,
|
||||
MediaSidecar: false,
|
||||
},
|
||||
Maps: customize.MapsSettings{
|
||||
Animate: 0,
|
||||
Style: "outdoor",
|
||||
},
|
||||
Index: customize.IndexSettings{
|
||||
Path: "index-path",
|
||||
Convert: true,
|
||||
Rescan: false,
|
||||
SkipArchived: false,
|
||||
},
|
||||
Import: customize.ImportSettings{
|
||||
Path: "imports/2023",
|
||||
Move: true,
|
||||
},
|
||||
}
|
||||
r2 := m.Apply(s2)
|
||||
|
||||
assert.Equal(t, "nl", r2.UILanguage)
|
||||
assert.Equal(t, "onyx", r2.UITheme)
|
||||
assert.Equal(t, "Europe/Berlin", r2.UITimeZone)
|
||||
assert.Equal(t, 1, r2.DownloadMediaRaw)
|
||||
assert.Equal(t, -1, r2.DownloadOriginals)
|
||||
assert.Equal(t, -1, r2.DownloadMediaSidecar)
|
||||
assert.Equal(t, "outdoor", r2.MapsStyle)
|
||||
assert.Equal(t, -1, r2.MapsAnimate)
|
||||
assert.Equal(t, -1, r2.IndexRescan)
|
||||
assert.Equal(t, "index-path", r2.IndexPath)
|
||||
assert.Equal(t, 1, r2.ImportMove)
|
||||
assert.Equal(t, "imports/2023", r2.ImportPath)
|
||||
}
|
||||
|
||||
func TestUserSettings_ApplyTo(t *testing.T) {
|
||||
m := &UserSettings{
|
||||
UITheme: "lavender",
|
||||
UILanguage: "ch",
|
||||
UITimeZone: "Europe",
|
||||
MapsStyle: "satellite",
|
||||
MapsAnimate: 1,
|
||||
IndexPath: "flowers",
|
||||
IndexRescan: -1,
|
||||
ImportPath: "import",
|
||||
ImportMove: 1,
|
||||
DownloadOriginals: -1,
|
||||
DownloadMediaRaw: 1,
|
||||
DownloadMediaSidecar: -1,
|
||||
}
|
||||
|
||||
s := &customize.Settings{
|
||||
UI: customize.UISettings{
|
||||
Theme: "onyx",
|
||||
Language: "nl",
|
||||
TimeZone: "Europe/Berlin",
|
||||
},
|
||||
Download: customize.DownloadSettings{
|
||||
Name: "file",
|
||||
Disabled: false,
|
||||
Originals: true,
|
||||
MediaRaw: false,
|
||||
MediaSidecar: true,
|
||||
},
|
||||
Maps: customize.MapsSettings{
|
||||
Animate: 0,
|
||||
Style: "outdoor",
|
||||
},
|
||||
Index: customize.IndexSettings{
|
||||
Path: "index-path",
|
||||
Convert: true,
|
||||
Rescan: true,
|
||||
SkipArchived: false,
|
||||
},
|
||||
Import: customize.ImportSettings{
|
||||
Path: "imports/2023",
|
||||
Move: false,
|
||||
},
|
||||
}
|
||||
r := m.ApplyTo(s)
|
||||
|
||||
assert.IsType(t, &customize.Settings{}, r)
|
||||
assert.Equal(t, "ch", r.UI.Language)
|
||||
assert.Equal(t, "lavender", r.UI.Theme)
|
||||
assert.Equal(t, "Europe", r.UI.TimeZone)
|
||||
assert.Equal(t, true, r.Download.MediaRaw)
|
||||
assert.Equal(t, false, r.Download.Originals)
|
||||
assert.Equal(t, false, r.Download.MediaSidecar)
|
||||
assert.Equal(t, "satellite", r.Maps.Style)
|
||||
assert.Equal(t, 1, r.Maps.Animate)
|
||||
assert.Equal(t, false, r.Index.Rescan)
|
||||
assert.Equal(t, "flowers", r.Index.Path)
|
||||
assert.Equal(t, true, r.Import.Move)
|
||||
assert.Equal(t, "import", r.Import.Path)
|
||||
|
||||
m2 := &UserSettings{
|
||||
UITheme: "lavender",
|
||||
UILanguage: "ch",
|
||||
UITimeZone: "Europe",
|
||||
MapsStyle: "satellite",
|
||||
MapsAnimate: -1,
|
||||
IndexPath: "flowers",
|
||||
IndexRescan: 1,
|
||||
ImportPath: "import",
|
||||
ImportMove: -1,
|
||||
DownloadOriginals: 1,
|
||||
DownloadMediaRaw: -1,
|
||||
DownloadMediaSidecar: 1,
|
||||
}
|
||||
|
||||
r2 := m2.ApplyTo(s)
|
||||
|
||||
assert.IsType(t, &customize.Settings{}, r2)
|
||||
assert.Equal(t, "ch", s.UI.Language)
|
||||
assert.Equal(t, "lavender", s.UI.Theme)
|
||||
assert.Equal(t, "Europe", s.UI.TimeZone)
|
||||
assert.Equal(t, false, s.Download.MediaRaw)
|
||||
assert.Equal(t, true, s.Download.Originals)
|
||||
assert.Equal(t, true, s.Download.MediaSidecar)
|
||||
assert.Equal(t, "satellite", s.Maps.Style)
|
||||
assert.Equal(t, 0, s.Maps.Animate)
|
||||
assert.Equal(t, true, s.Index.Rescan)
|
||||
assert.Equal(t, "flowers", s.Index.Path)
|
||||
assert.Equal(t, false, s.Import.Move)
|
||||
assert.Equal(t, "import", s.Import.Path)
|
||||
}
|
Loading…
Reference in a new issue