From 80c10bb35c30fabcc26ea6e89274d5ddf2ce50de Mon Sep 17 00:00:00 2001 From: graciousgrey Date: Fri, 18 Aug 2023 17:48:14 +0200 Subject: [PATCH] Tests: Add unit tests --- .../entity/auth_user_share_fixtures_test.go | 40 +++++++ internal/entity/auth_user_share_test.go | 111 +++++++++++++++--- 2 files changed, 135 insertions(+), 16 deletions(-) create mode 100644 internal/entity/auth_user_share_fixtures_test.go diff --git a/internal/entity/auth_user_share_fixtures_test.go b/internal/entity/auth_user_share_fixtures_test.go new file mode 100644 index 000000000..861091e5a --- /dev/null +++ b/internal/entity/auth_user_share_fixtures_test.go @@ -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) + }) +} diff --git a/internal/entity/auth_user_share_test.go b/internal/entity/auth_user_share_test.go index fb906fd1b..d8a97c92a 100644 --- a/internal/entity/auth_user_share_test.go +++ b/internal/entity/auth_user_share_test.go @@ -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) + }) }