3
0

Refresh role members store tests

This commit is contained in:
Jože Fortun
2020-08-28 18:15:53 +02:00
committed by Denis Arh
parent 536fdce2ee
commit 2537a192f6
+74 -10
View File
@@ -13,22 +13,86 @@ import (
func testRoleMembers(t *testing.T, s store.RoleMembers) {
var (
ctx = context.Background()
req = require.New(t)
role *types.RoleMember
makeNew = func(nn ...string) *types.RoleMember {
// minimum data set for new RoleMember
return &types.RoleMember{
RoleID: id.Next(),
UserID: id.Next(),
}
}
truncAndCreate = func(t *testing.T) (*require.Assertions, *types.RoleMember) {
req := require.New(t)
req.NoError(s.TruncateRoleMembers(ctx))
roleMember := makeNew()
req.NoError(s.CreateRoleMember(ctx, roleMember))
return req, roleMember
}
truncAndFill = func(t *testing.T, l int) (*require.Assertions, types.RoleMemberSet) {
req := require.New(t)
req.NoError(s.TruncateRoleMembers(ctx))
set := make([]*types.RoleMember, l)
for i := 0; i < l; i++ {
set[i] = makeNew()
}
req.NoError(s.CreateRoleMember(ctx, set...))
return req, set
}
)
t.Run("create", func(t *testing.T) {
role = &types.RoleMember{
RoleID: id.Next(),
UserID: id.Next(),
}
req.NoError(s.CreateRoleMember(ctx, role))
req := require.New(t)
req.NoError(s.CreateRoleMember(ctx, makeNew()))
})
t.Run("search", func(t *testing.T) {
_, _, err := s.SearchRoleMembers(ctx, types.RoleMemberFilter{})
req.NoError(err)
t.Run("create multiple", func(t *testing.T) {
truncAndFill(t, 5)
})
t.Run("delete", func(t *testing.T) {
t.Run("by role member", func(t *testing.T) {
req, roleMember := truncAndCreate(t)
req.NoError(s.DeleteRoleMember(ctx, roleMember))
roleMembers, _, _ := s.SearchRoleMembers(ctx, types.RoleMemberFilter{UserID: roleMember.UserID, RoleID: roleMember.RoleID})
req.Len(roleMembers, 0)
})
t.Run("by RoleID and UserID", func(t *testing.T) {
req, roleMember := truncAndCreate(t)
req.NoError(s.DeleteRoleMemberByUserIDRoleID(ctx, roleMember.UserID, roleMember.RoleID))
roleMembers, _, _ := s.SearchRoleMembers(ctx, types.RoleMemberFilter{UserID: roleMember.UserID, RoleID: roleMember.RoleID})
req.Len(roleMembers, 0)
})
})
// t.Run("update", func(t *testing.T) {
// req, roleMember := truncAndCreate(t)
// newID := id.Next()
// roleMember = &types.RoleMember{
// UserID: roleMember.UserID,
// RoleID: newID,
// }
// req.NoError(s.UpdateRoleMember(ctx, roleMember))
// updated, f, err := s.SearchRoleMembers(ctx, types.RoleMemberFilter{UserID: roleMember.UserID})
// req.NoError(err)
// req.Equal(updated[0].UserID, f.UserID)
// })
// t.Run("search", func(t *testing.T) {
// t.Run("by RoleID", func(t *testing.T) {
// req, prefill := truncAndFill(t, 5)
// set, f, err := s.SearchRoleMembers(ctx, types.RoleMemberFilter{RoleID: prefill[0].RoleID})
// req.NoError(err)
// req.Equal(prefill[0].RoleID, f.RoleID)
// req.Len(set, 1)
// })
// })
}