• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

LBreedlove / Queuebal.Expressions / 18445802153

12 Oct 2025 03:17PM UTC coverage: 96.312% (-0.3%) from 96.599%
18445802153

push

github

web-flow
refactor mutations so params have access to source data (#24)

442 of 447 branches covered (98.88%)

Branch coverage included in aggregate %.

87 of 95 new or added lines in 17 files covered. (91.58%)

2 existing lines in 2 files now uncovered.

2692 of 2807 relevant lines covered (95.9%)

422.91 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

88.89
/Queuebal.Expressions.Mutations/StringJoinMutation.cs
1
using Queuebal.Json;
2

3
namespace Queuebal.Expressions.Mutations;
4

5

6
public class StringJoinMutation : Mutation
7
{
8
    public static string MutationType => "StringJoin";
5✔
9

10
    /// <summary>
11
    /// The separator used to join the strings in the inputValue.
12
    /// </summary>
13
    public required IExpression Separator { get; set; }
16✔
14

15
    protected override JSONValue EvaluateMutation(ExpressionContext context, JSONValue originalValue, JSONValue sourceData)
16
    {
5✔
17
        if (!originalValue.IsList)
5✔
18
        {
1✔
19
            throw new InvalidOperationException("StringJoinMutation can only be applied to a list input value.");
1✔
20
        }
21

22
        if (originalValue.ListValue.Select(v => v.IsString).Any(v => !v))
26✔
23
        {
1✔
24
            throw new InvalidOperationException("StringJoinMutation can only be applied to a list of strings.");
1✔
25
        }
26

27
        var separatorValue = Separator.Evaluate(context, sourceData);
3✔
28
        if (!separatorValue.IsString)
3✔
NEW
29
        {
×
NEW
30
            throw new InvalidOperationException("The Separator expression must evaluate to a string value.");
×
31
        }
32

33
        return string.Join(separatorValue.StringValue, originalValue.ListValue.Select(v => v.StringValue));
11✔
34
    }
3✔
35
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc