feat: add organization domain foundation
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
using Socialize.Api.Modules.Organizations.Services;
|
||||
|
||||
namespace Socialize.Tests.Organizations;
|
||||
|
||||
public class OrganizationPermissionRulesTests
|
||||
{
|
||||
[Fact]
|
||||
public void Owner_has_all_initial_organization_permissions()
|
||||
{
|
||||
IReadOnlyCollection<string> permissions = OrganizationPermissionRules.GetPermissionsForRole(OrganizationRoles.Owner);
|
||||
|
||||
Assert.Contains(OrganizationPermissions.ManageOrganizationSettings, permissions);
|
||||
Assert.Contains(OrganizationPermissions.ManageOrganizationMembers, permissions);
|
||||
Assert.Contains(OrganizationPermissions.CreateWorkspaces, permissions);
|
||||
Assert.Contains(OrganizationPermissions.ManageWorkspaces, permissions);
|
||||
Assert.Contains(OrganizationPermissions.ManageBilling, permissions);
|
||||
Assert.Contains(OrganizationPermissions.ManageConnectors, permissions);
|
||||
Assert.Contains(OrganizationPermissions.AccessOwnedWorkspaces, permissions);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Admin_does_not_receive_billing_permission_by_default()
|
||||
{
|
||||
IReadOnlyCollection<string> permissions = OrganizationPermissionRules.GetPermissionsForRole(OrganizationRoles.Admin);
|
||||
|
||||
Assert.Contains(OrganizationPermissions.ManageOrganizationSettings, permissions);
|
||||
Assert.Contains(OrganizationPermissions.ManageOrganizationMembers, permissions);
|
||||
Assert.Contains(OrganizationPermissions.CreateWorkspaces, permissions);
|
||||
Assert.Contains(OrganizationPermissions.ManageWorkspaces, permissions);
|
||||
Assert.Contains(OrganizationPermissions.ManageConnectors, permissions);
|
||||
Assert.Contains(OrganizationPermissions.AccessOwnedWorkspaces, permissions);
|
||||
Assert.DoesNotContain(OrganizationPermissions.ManageBilling, permissions);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(OrganizationRoles.BillingManager, OrganizationPermissions.ManageBilling, true)]
|
||||
[InlineData(OrganizationRoles.BillingManager, OrganizationPermissions.ManageConnectors, false)]
|
||||
[InlineData(OrganizationRoles.ConnectorManager, OrganizationPermissions.ManageConnectors, true)]
|
||||
[InlineData(OrganizationRoles.ConnectorManager, OrganizationPermissions.ManageBilling, false)]
|
||||
[InlineData(OrganizationRoles.Member, OrganizationPermissions.AccessOwnedWorkspaces, true)]
|
||||
[InlineData(OrganizationRoles.Member, OrganizationPermissions.ManageWorkspaces, false)]
|
||||
public void RoleHasPermission_enforces_role_permission_mapping(
|
||||
string role,
|
||||
string permission,
|
||||
bool expected)
|
||||
{
|
||||
bool actual = OrganizationPermissionRules.RoleHasPermission(role, permission);
|
||||
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user