* Harden workflow JSON type resolution * Harden workflow type alias serialization * Register JSON island type aliases * Fix workflow JSON aliases for runtime types * Register CLR workflow type aliases at startup * Register safe workflow serialization aliases * Use registered workflow type aliases in serializers * Restore trusted legacy workflow JSON aliases * Share runtime workflow type alias registration * Address workflow JSON review follow-ups * Address workflow JSON review follow-ups * Address workflow JSON review edge cases * Address workflow JSON converter review feedback * Register workflow JSON types for HTTP and JavaScript failures * Address secure type serialization review comments * Address deserialization review feedback * Address workflow serialization review comments * Address workflow type review feedback * Tighten workflow type hardening fixes * Avoid workflow alias string type resolution * Address workflow type alias review feedback * Stabilize publish event payload assertion * Stabilize bulk dispatch component test * Make workflow dictionary aliases idempotent * Declare workflow runtime feature dependency * Assert trigger payload alias serialization * Import workflow helper contracts * Avoid duplicate CLR workflow materialization * Normalize workflow factory aliases
32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
using System.Reflection;
|
|
using Elsa.Expressions.JavaScript.ShellFeatures;
|
|
using Elsa.Expressions.Options;
|
|
using Elsa.Expressions.Services;
|
|
using Jint.Runtime;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace Elsa.JavaScript.IntegrationTests;
|
|
|
|
public class JavaScriptFeatureTests
|
|
{
|
|
[Fact]
|
|
public void ConfigureServices_RegistersUniqueWrapperExceptionAlias()
|
|
{
|
|
var services = new ServiceCollection();
|
|
var feature = new JavaScriptFeature();
|
|
var wrapperExceptionType = typeof(JavaScriptException).GetNestedType("JavaScriptErrorWrapperException", BindingFlags.Public | BindingFlags.NonPublic);
|
|
|
|
feature.ConfigureServices(services);
|
|
|
|
using var serviceProvider = services.BuildServiceProvider();
|
|
var expressionOptions = serviceProvider.GetRequiredService<IOptions<ExpressionOptions>>();
|
|
var registry = new WellKnownTypeRegistry(expressionOptions);
|
|
|
|
Assert.NotNull(wrapperExceptionType);
|
|
Assert.True(registry.TryGetType("Jint.JavaScriptErrorWrapperException", out var type));
|
|
Assert.Equal(wrapperExceptionType, type);
|
|
Assert.False(registry.TryGetType(wrapperExceptionType.Name, out _));
|
|
}
|
|
}
|