< Summary

Information
Class: Elsa.AI.Host.Tools.Workflows.WorkflowDefinitionGraphTool
Assembly: Elsa.AI.Host
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Host/Tools/Workflows/WorkflowDefinitionGraphTool.cs
Line coverage
88%
Covered lines: 16
Uncovered lines: 2
Coverable lines: 18
Total lines: 30
Line coverage: 88.8%
Branch coverage
50%
Covered branches: 3
Total branches: 6
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_Definition()100%11100%
ExecuteAsync()50%7675%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Host/Tools/Workflows/WorkflowDefinitionGraphTool.cs

#LineLine coverage
 1using Elsa.AI.Abstractions.Models;
 2using Elsa.AI.Host.Services;
 3
 4namespace Elsa.AI.Host.Tools.Workflows;
 5
 466public class WorkflowDefinitionGraphTool(IServiceProvider serviceProvider, WorkflowGroundingMapper mapper, AIGroundingRe
 7{
 938    public override AIToolDefinition Definition { get; } = ReadOnlyDefinition(
 469        "workflows.getDefinitionGraph",
 4610        "Get workflow graph",
 4611        "Get a bounded graph summary for an authorized workflow definition.",
 4612        GroundingToolSchemas.WithProperties(
 4613            ("id", GroundingToolSchemas.String("Workflow definition version ID.")),
 4614            ("versionId", GroundingToolSchemas.String("Workflow definition version ID.")),
 4615            ("definitionId", GroundingToolSchemas.String("Logical workflow definition ID.")),
 4616            ("version", GroundingToolSchemas.Integer("Specific workflow version."))));
 17
 18    public override async ValueTask<AIToolResult> ExecuteAsync(AIToolExecutionContext context, CancellationToken cancell
 19    {
 120        var store = WorkflowDefinitionStore;
 121        if (store == null)
 022            return WorkflowStoreUnavailable();
 23
 124        var definition = await store.FindAsync(CreateDefinitionFilter(context.Arguments), cancellationToken);
 125        if (definition == null || !IsTenantAllowed(definition, context.TenantId))
 026            return new AIToolResult { Status = AIToolInvocationStatus.Failed, Error = "Workflow definition was not found
 27
 128        return Formatter.CreateResult($"Resolved graph for workflow definition {definition.DefinitionId} v{definition.Ve
 129    }
 30}