Skip to content

Fix YAML deserializer to bind inherited properties and handle primitive values in custom step types#1395

Open
danielgerlag with Copilot wants to merge 7 commits into
masterfrom
copilot/fix-1375
Open

Fix YAML deserializer to bind inherited properties and handle primitive values in custom step types#1395
danielgerlag with Copilot wants to merge 7 commits into
masterfrom
copilot/fix-1375

Update src/WorkflowCore.DSL/Services/DefinitionLoader.cs

b2e8967
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
GitHub Actions / Unit Test Results succeeded Oct 11, 2025 in 0s

60 passed, 0 failed and 0 skipped

Tests passed successfully

✅ test-results/UnitTests.trx

60 tests were completed in 2s with 60 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
WorkflowCore.UnitTests.MemberMapParameterTests 4✅ 22ms
WorkflowCore.UnitTests.Services.DefinitionStorage.DefinitionLoaderTests 5✅ 68ms
WorkflowCore.UnitTests.Services.DefinitionStorage.YamlInheritedPropertyIntegrationTest 2✅ 439ms
WorkflowCore.UnitTests.Services.ExecutionResultProcessorFixture 6✅ 132ms
WorkflowCore.UnitTests.Services.LifeCycleEventPublisherTests 3✅ 136ms
WorkflowCore.UnitTests.Services.MemoryPersistenceProviderFixture 6✅ 134ms
WorkflowCore.UnitTests.Services.ScopeProviderTests 1✅ 195ms
WorkflowCore.UnitTests.Services.StepExecutorTests 4✅ 974ms
WorkflowCore.UnitTests.Services.WorkflowExecutorFixture 10✅ 124ms
WorkflowCore.UnitTests.Services.WorkflowMiddlewareRunnerTests 16✅ 790ms
WorkflowCore.UnitTests.Services.WorkflowRegistryFixture 3✅ 68ms

✅ WorkflowCore.UnitTests.MemberMapParameterTests

✅ should_assign_input
✅ should_assign_output
✅ should_convert_input
✅ should_convert_output

✅ WorkflowCore.UnitTests.Services.DefinitionStorage.DefinitionLoaderTests

✅ Should parse definition
✅ Should parse definition
✅ Should parse definition
✅ Should register workflow
✅ Should throw error for bad input property name on step

✅ WorkflowCore.UnitTests.Services.DefinitionStorage.YamlInheritedPropertyIntegrationTest

✅ Should bind inherited properties like RunParallel from base Foreach class
✅ Should still throw exception for truly unknown properties

✅ WorkflowCore.UnitTests.Services.ExecutionResultProcessorFixture

✅ Should advance workflow
✅ Should branch children
✅ Should select correct outcomes
✅ Should set persistence data
✅ Should sleep pointer
✅ Should subscribe to event

✅ WorkflowCore.UnitTests.Services.LifeCycleEventPublisherTests

✅ Notifications should be disabled if option EnableLifeCycleEventsPublisher is disabled
✅ Notifications should be published when the publisher is running
✅ Notifications should be published when the publisher is running

✅ WorkflowCore.UnitTests.Services.MemoryPersistenceProviderFixture

✅ ConcurrentPersistWorkflow
✅ CreateNewWorkflow_should_generate_id
✅ GetWorkflowInstance_should_retrieve_workflow
✅ GetWorkflowInstances_should_retrieve_workflows
✅ PersistWorkflow
✅ PersistWorkflow_with_subscriptions

✅ WorkflowCore.UnitTests.Services.ScopeProviderTests

✅ Should return IServiceScope

✅ WorkflowCore.UnitTests.Services.StepExecutorTests

✅ ExecuteStep should bubble up exceptions in middleware
✅ ExecuteStep should run middleware and step when one middleware
✅ ExecuteStep should run middleware chain completing in reverse order and step when multiple middleware
✅ ExecuteStep should run step when no middleware

✅ WorkflowCore.UnitTests.Services.WorkflowExecutorFixture

✅ Should call execute middleware when not completed
✅ Should execute active step
✅ Should handle step exception
✅ Should map inputs
✅ Should map outputs
✅ Should not call post middleware when not completed
✅ Should not execute inactive step
✅ Should process after execution iteration
✅ Should process cancellations
✅ Should trigger step hooks

✅ WorkflowCore.UnitTests.Services.WorkflowMiddlewareRunnerTests

✅ RunExecuteMiddleware should call error handler on workflow def when middleware throws and def has handler defined
✅ RunExecuteMiddleware should call top level error handler when middleware throws
✅ RunExecuteMiddleware should only run middleware in ExecuteWorkflow phase
✅ RunExecuteMiddleware should run all middleware when multiple middleware
✅ RunExecuteMiddleware should run middleware when one middleware
✅ RunExecuteMiddleware should run nothing when no middleware
✅ RunPostMiddleware should call error handler on workflow def when middleware throws and def has handler defined
✅ RunPostMiddleware should call top level error handler when middleware throws
✅ RunPostMiddleware should only run middleware in PostWorkflow phase
✅ RunPostMiddleware should run all middleware when multiple middleware
✅ RunPostMiddleware should run middleware when one middleware
✅ RunPostMiddleware should run nothing when no middleware
✅ RunPreMiddleware should only run middleware in PreWorkflow phase
✅ RunPreMiddleware should run all middleware when multiple middleware
✅ RunPreMiddleware should run middleware when one middleware
✅ RunPreMiddleware should run nothing when no middleware

✅ WorkflowCore.UnitTests.Services.WorkflowRegistryFixture

✅ Should return existing workflow
✅ Should return highest version of existing workflow
✅ Should return null on unknown workflow