elsa-core/test/integration/Elsa.JavaScript.IntegrationTests/JavaScriptFeatureTests.cs
Sipke Schoorstra cec3281a20
[codex] Harden workflow JSON type resolution (#7499)
* 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
2026-05-22 15:25:49 +02:00

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 _));
}
}