Tests: Add unit tests

This commit is contained in:
graciousgrey 2023-08-18 17:48:14 +02:00
parent a3f27c8d67
commit 80c10bb35c
2 changed files with 135 additions and 16 deletions

View file

@ -0,0 +1,40 @@
package entity
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestUserShareMap_Get(t *testing.T) {
t.Run("AliceAlbum", func(t *testing.T) {
r := UserShareFixtures.Get("AliceAlbum")
assert.Equal(t, "The quick brown fox jumps over the lazy dog.", r.Comment)
assert.Equal(t, "at9lxuqxpogaaba9", r.ShareUID)
assert.IsType(t, UserShare{}, r)
})
t.Run("Invalid", func(t *testing.T) {
r := UserShareFixtures.Get("monstera")
assert.Equal(t, "", r.Comment)
assert.Equal(t, "", r.ShareUID)
assert.IsType(t, UserShare{}, r)
})
}
func TestUserShareMap_Pointer(t *testing.T) {
t.Run("AliceAlbum", func(t *testing.T) {
r := UserShareFixtures.Pointer("AliceAlbum")
assert.Equal(t, "The quick brown fox jumps over the lazy dog.", r.Comment)
assert.Equal(t, "at9lxuqxpogaaba9", r.ShareUID)
assert.IsType(t, &UserShare{}, r)
})
t.Run("Invalid", func(t *testing.T) {
r := UserShareFixtures.Pointer("monstera")
assert.Equal(t, "", r.Comment)
assert.Equal(t, "", r.ShareUID)
assert.IsType(t, &UserShare{}, r)
})
}

View file

@ -9,6 +9,21 @@ import (
"github.com/photoprism/photoprism/pkg/rnd"
)
func TestUserShares_Contains(t *testing.T) {
t.Run("False", func(t *testing.T) {
m := UserShares{UserShare{UserUID: "uqxetse3cy5eo9z2", ShareUID: "at9lxuqxpogaaba9"}}
assert.False(t, m.Contains("at9lxuqxpogaaxxx"))
})
t.Run("True", func(t *testing.T) {
m := UserShares{UserShare{UserUID: "uqxetse3cy5eo9z2", ShareUID: "at9lxuqxpogaaba9"}}
assert.True(t, m.Contains("at9lxuqxpogaaba9"))
})
t.Run("Empty", func(t *testing.T) {
m := UserShares{}
assert.False(t, m.Contains("at9lxuqxpogaaxxx"))
})
}
func TestNewUserShare(t *testing.T) {
expires := TimeStamp().Add(time.Hour * 48)
m := NewUserShare(Admin.UID(), AlbumFixtures.Get("berlin-2019").AlbumUID, PermReact, &expires)
@ -53,25 +68,89 @@ func TestFindUserShare(t *testing.T) {
assert.Equal(t, expected.UserUID, m.UserUID)
assert.Equal(t, expected.ShareUID, m.ShareUID)
})
t.Run("Empty", func(t *testing.T) {
m := FindUserShare(UserShare{})
assert.Nil(t, m)
})
}
func TestFindUserShares(t *testing.T) {
found := FindUserShares(UserFixtures.Pointer("alice").UID())
assert.NotNil(t, found)
assert.Len(t, found, 1)
t.Run("Alice", func(t *testing.T) {
found := FindUserShares(UserFixtures.Pointer("alice").UID())
assert.NotNil(t, found)
assert.Len(t, found, 1)
m := found[0]
expected := UserShareFixtures.Get("AliceAlbum")
m := found[0]
expected := UserShareFixtures.Get("AliceAlbum")
assert.NotNil(t, m)
assert.True(t, m.HasID())
assert.True(t, rnd.IsRefID(m.RefID))
assert.True(t, rnd.IsUID(m.UserUID, UserUID))
assert.True(t, rnd.IsUID(m.ShareUID, AlbumUID))
assert.Equal(t, expected.Perm, m.Perm)
assert.Equal(t, expected.ExpiresAt, m.ExpiresAt)
assert.Equal(t, expected.Comment, m.Comment)
assert.Equal(t, expected.LinkUID, m.LinkUID)
assert.Equal(t, expected.UserUID, m.UserUID)
assert.Equal(t, expected.ShareUID, m.ShareUID)
assert.NotNil(t, m)
assert.True(t, m.HasID())
assert.True(t, rnd.IsRefID(m.RefID))
assert.True(t, rnd.IsUID(m.UserUID, UserUID))
assert.True(t, rnd.IsUID(m.ShareUID, AlbumUID))
assert.Equal(t, expected.Perm, m.Perm)
assert.Equal(t, expected.ExpiresAt, m.ExpiresAt)
assert.Equal(t, expected.Comment, m.Comment)
assert.Equal(t, expected.LinkUID, m.LinkUID)
assert.Equal(t, expected.UserUID, m.UserUID)
assert.Equal(t, expected.ShareUID, m.ShareUID)
})
t.Run("Invalid uid", func(t *testing.T) {
found := FindUserShares("123")
assert.IsType(t, UserShares{}, found)
assert.Empty(t, found)
})
}
func TestUserShare_Create(t *testing.T) {
m := UserShare{}
err := m.Create()
if err != nil {
t.Fatal(err)
}
}
func TestUserShare_UpdateLink(t *testing.T) {
t.Run("Success", func(t *testing.T) {
m := UserShare{
ShareUID: "at9lxuqxpogaaba9",
}
assert.Equal(t, "", m.LinkUID)
assert.Equal(t, "", m.Comment)
l := Link{
LinkUID: "sqn2xpryd1ob8xxx",
ShareUID: "at9lxuqxpogaaba9",
Comment: "Wedding",
}
err := m.UpdateLink(l)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, "sqn2xpryd1ob8xxx", m.LinkUID)
assert.Equal(t, "Wedding", m.Comment)
})
t.Run("UID mismatch", func(t *testing.T) {
m := UserShare{
ShareUID: "at9lxuqxpogaaba9",
}
assert.Equal(t, "", m.LinkUID)
assert.Equal(t, "", m.Comment)
l := Link{
LinkUID: "sqn2xpryd1ob8xxx",
ShareUID: "at9lxuqxpogaaba8",
Comment: "Wedding",
}
err := m.UpdateLink(l)
assert.Error(t, err)
assert.Equal(t, "", m.LinkUID)
assert.Equal(t, "", m.Comment)
})
}