mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-21 20:10:30 -06:00
94 lines
3.1 KiB
Go
94 lines
3.1 KiB
Go
package validate_test
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
libregraph "github.com/owncloud/libre-graph-api-go"
|
|
|
|
"github.com/owncloud/ocis/v2/services/graph/pkg/unifiedrole"
|
|
"github.com/owncloud/ocis/v2/services/graph/pkg/validate"
|
|
)
|
|
|
|
var _ = Describe("libregraph", func() {
|
|
|
|
var driveItemInvite libregraph.DriveItemInvite
|
|
|
|
BeforeEach(func() {
|
|
driveItemInvite = libregraph.DriveItemInvite{
|
|
Recipients: []libregraph.DriveRecipient{{ObjectId: libregraph.PtrString("1")}},
|
|
Roles: []string{unifiedrole.UnifiedRoleEditorID},
|
|
LibreGraphPermissionsActions: []string{unifiedrole.DriveItemVersionsUpdate},
|
|
ExpirationDateTime: libregraph.PtrTime(time.Now().Add(time.Hour)),
|
|
}
|
|
})
|
|
|
|
DescribeTable("DriveItemInvite",
|
|
func(factory func() libregraph.DriveItemInvite, expectError bool) {
|
|
f := factory()
|
|
switch err := validate.StructCtx(context.Background(), f); expectError {
|
|
case true:
|
|
Expect(err).To(HaveOccurred())
|
|
default:
|
|
Expect(err).ToNot(HaveOccurred())
|
|
}
|
|
|
|
},
|
|
Entry("succeed: roles", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.LibreGraphPermissionsActions = nil
|
|
return driveItemInvite
|
|
}, false),
|
|
Entry("succeed: permission actions", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.Roles = nil
|
|
return driveItemInvite
|
|
}, false),
|
|
Entry("succeed: without ExpirationDateTime", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.Roles = nil
|
|
driveItemInvite.ExpirationDateTime = nil
|
|
return driveItemInvite
|
|
}, false),
|
|
Entry("fail: multiple role assignment", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.Roles = []string{
|
|
unifiedrole.UnifiedRoleEditorID,
|
|
unifiedrole.UnifiedRoleManagerID,
|
|
}
|
|
driveItemInvite.LibreGraphPermissionsActions = nil
|
|
return driveItemInvite
|
|
}, true),
|
|
Entry("fail: unknown role", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.Roles = []string{"foo"}
|
|
driveItemInvite.LibreGraphPermissionsActions = nil
|
|
return driveItemInvite
|
|
}, true),
|
|
Entry("fail: unknown action", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.Roles = nil
|
|
driveItemInvite.LibreGraphPermissionsActions = []string{"foo"}
|
|
return driveItemInvite
|
|
}, true),
|
|
Entry("fail: missing roles or permission actions", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.Roles = nil
|
|
driveItemInvite.LibreGraphPermissionsActions = nil
|
|
return driveItemInvite
|
|
}, true),
|
|
Entry("fail: different number of roles and actions", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.LibreGraphPermissionsActions = []string{
|
|
unifiedrole.DriveItemVersionsUpdate,
|
|
unifiedrole.DriveItemChildrenCreate,
|
|
}
|
|
return driveItemInvite
|
|
}, true),
|
|
Entry("fail: missing recipients", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.Roles = nil
|
|
driveItemInvite.Recipients = nil
|
|
return driveItemInvite
|
|
}, true),
|
|
Entry("fail: expirationDateTime in the past", func() libregraph.DriveItemInvite {
|
|
driveItemInvite.Roles = nil
|
|
driveItemInvite.ExpirationDateTime = libregraph.PtrTime(time.Now().Add(-time.Hour))
|
|
return driveItemInvite
|
|
}, true),
|
|
)
|
|
})
|