Add calendar integrations and collaboration updates
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
using Socialize.Api.Modules.CalendarIntegrations.Data;
|
||||
using Socialize.Api.Modules.CalendarIntegrations.Handlers;
|
||||
using Socialize.Api.Modules.CalendarIntegrations.Services;
|
||||
|
||||
namespace Socialize.Tests.CalendarIntegrations;
|
||||
|
||||
public class CalendarSourceRulesTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(CalendarSourceScopes.Organization, true, false, true)]
|
||||
[InlineData(CalendarSourceScopes.Organization, false, true, false)]
|
||||
[InlineData(CalendarSourceScopes.Workspace, false, true, true)]
|
||||
[InlineData(CalendarSourceScopes.Workspace, true, false, false)]
|
||||
public void CanManageScope_uses_scope_specific_shared_calendar_permissions(
|
||||
string scope,
|
||||
bool canManageOrganizationCalendars,
|
||||
bool canManageWorkspaceCalendars,
|
||||
bool expected)
|
||||
{
|
||||
Guid currentUserId = Guid.NewGuid();
|
||||
|
||||
bool actual = CalendarSourceRules.CanManageScope(
|
||||
scope,
|
||||
canManageOrganizationCalendars,
|
||||
canManageWorkspaceCalendars,
|
||||
currentUserId,
|
||||
sourceUserId: null);
|
||||
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CanManageScope_allows_only_owner_for_user_sources()
|
||||
{
|
||||
Guid currentUserId = Guid.NewGuid();
|
||||
|
||||
Assert.True(CalendarSourceRules.CanManageScope(
|
||||
CalendarSourceScopes.User,
|
||||
canManageOrganizationCalendars: false,
|
||||
canManageWorkspaceCalendars: false,
|
||||
currentUserId,
|
||||
currentUserId));
|
||||
|
||||
Assert.False(CalendarSourceRules.CanManageScope(
|
||||
CalendarSourceScopes.User,
|
||||
canManageOrganizationCalendars: true,
|
||||
canManageWorkspaceCalendars: true,
|
||||
currentUserId,
|
||||
Guid.NewGuid()));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Workspace_context_marks_inherited_organization_sources_read_only()
|
||||
{
|
||||
Guid organizationId = Guid.NewGuid();
|
||||
CalendarSource organizationSource = new()
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Scope = CalendarSourceScopes.Organization,
|
||||
OrganizationId = organizationId,
|
||||
DisplayTitle = "Public holidays",
|
||||
Color = "#2F80ED",
|
||||
Category = "public-holiday",
|
||||
InheritanceMode = CalendarSourceInheritanceModes.Required,
|
||||
};
|
||||
|
||||
CalendarSource workspaceSource = new()
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Scope = CalendarSourceScopes.Workspace,
|
||||
WorkspaceId = Guid.NewGuid(),
|
||||
DisplayTitle = "Campaign moments",
|
||||
Color = "#27AE60",
|
||||
Category = "marketing-moment",
|
||||
};
|
||||
|
||||
CalendarSourceDto inheritedDto = CalendarSourceDto.FromSource(
|
||||
organizationSource,
|
||||
CalendarSourceRules.IsInheritedOrganizationSource(organizationSource, organizationId));
|
||||
CalendarSourceDto workspaceDto = CalendarSourceDto.FromSource(
|
||||
workspaceSource,
|
||||
CalendarSourceRules.IsInheritedOrganizationSource(workspaceSource, organizationId));
|
||||
|
||||
Assert.True(inheritedDto.IsReadOnly);
|
||||
Assert.False(workspaceDto.IsReadOnly);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user