elsa-core/test/integration/Elsa.Hosts.SmokeTests/RoleManagementE2EFixtureTests.cs
2026-09-06 04:25:09 +02:00

50 lines
1.7 KiB
C#

using Elsa.Authorization;
using Elsa.ModularServer.Web;
using Elsa.Permissions;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace Elsa.Hosts.SmokeTests;
public class RoleManagementE2EFixtureTests
{
[Fact]
public void DisabledConfigurationLeavesServicesUnchanged()
{
var services = new ServiceCollection();
services.AddSingleton<ExistingService>();
var before = services.ToArray();
services.AddRoleManagementE2EFixtures(new ConfigurationBuilder().Build());
Assert.Equal(before, services);
Assert.DoesNotContain(services, x => x.ServiceType == typeof(IPermissionDescriptorProvider));
}
[Fact]
public void EnabledConfigurationContributesOneUnverifiedDescriptor()
{
var configuration = new ConfigurationBuilder()
.AddInMemoryCollection(new Dictionary<string, string?>
{
[RoleManagementE2EFixtureServiceCollectionExtensions.IncludeUnverifiedPermissionDescriptorKey] = "true"
})
.Build();
var services = new ServiceCollection();
services.AddRoleManagementE2EFixtures(configuration);
using var serviceProvider = services.BuildServiceProvider();
var providers = serviceProvider.GetServices<IPermissionDescriptorProvider>().ToArray();
var descriptors = providers.SelectMany(x => x.GetDescriptors()).ToArray();
Assert.Single(providers);
var descriptor = Assert.Single(descriptors);
Assert.Equal("e2e/role-management/unverified", descriptor.Resource);
Assert.False(descriptor.Verified);
Assert.Equal([CoreVerbs.View], descriptor.SupportedVerbs);
}
private sealed class ExistingService;
}