✨ Implement user-by-share, login-by-share and share-by-user retrieval
This commit is contained in:
@@ -227,6 +227,49 @@ func TestStoreShareHandling(t *testing.T) {
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("can list users", func(t *testing.T) {
|
||||
users, err := store.GetShareUsers(share1)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
if len(users) != 2 {
|
||||
t.Errorf("unexpected amount of users: %d", len(users))
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("can find shares by user", func(t *testing.T) {
|
||||
userShares, err := store.FindSharesByUser(user2.Username)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
if len(userShares) != 2 {
|
||||
t.Errorf("unexpected amount of shared: %d", len(userShares))
|
||||
}
|
||||
share1Found := false
|
||||
share2Found := false
|
||||
for _, userShare := range userShares {
|
||||
switch userShare.UUID {
|
||||
case share1.UUID:
|
||||
if userShare.Role != ShareRoleReader {
|
||||
t.Errorf("invalid role for share1: %v", userShare.Role)
|
||||
}
|
||||
share1Found = true
|
||||
case share2.UUID:
|
||||
if userShare.Role != ShareRoleAdmin {
|
||||
t.Errorf("invalid role for share2: %v", userShare.Role)
|
||||
}
|
||||
share2Found = true
|
||||
}
|
||||
}
|
||||
|
||||
if !share1Found {
|
||||
t.Errorf("share1 was not found")
|
||||
}
|
||||
if !share2Found {
|
||||
t.Errorf("share2 was not found")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("logins can be added", func(t *testing.T) {
|
||||
login1 := Login{LoginName: "login1"}
|
||||
login2 := Login{LoginName: "login2"}
|
||||
@@ -242,6 +285,16 @@ func TestStoreShareHandling(t *testing.T) {
|
||||
t.Errorf("adding login returned error: %v", err)
|
||||
}
|
||||
|
||||
t.Run("can list logins", func(t *testing.T) {
|
||||
logins, err := store.GetShareLogins(share1, user2.Username)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
if len(logins) != 2 {
|
||||
t.Errorf("unexpected amount of users: %d", len(logins))
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("duplicate login not allowed", func(t *testing.T) {
|
||||
// Different share, but same user:login pair as above. Must be a share where
|
||||
// that user is already assigned, though.
|
||||
|
||||
Reference in New Issue
Block a user