< Summary

Information
Class: UIBlazor.Components.ApprovalModeSelector
Assembly: UIBlazor
File(s): /home/runner/work/InvAit/InvAit/UIBlazor/Components/ApprovalModeSelector.razor
Tag: 71_26091983037
Line coverage
98%
Covered lines: 65
Uncovered lines: 1
Coverable lines: 66
Total lines: 44
Line coverage: 98.4%
Branch coverage
100%
Covered branches: 8
Total branches: 8
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Value()100%11100%
get_ValueChanged()100%11100%
render(...)100%1198.36%

File(s)

/home/runner/work/InvAit/InvAit/UIBlazor/Components/ApprovalModeSelector.razor

#LineLine coverage
 1<RadzenDropDown TValue="ToolApprovalMode"
 2                Data="@(Enum.GetValues<ToolApprovalMode>())"
 3                Value="@Value"
 54                Change="@(args => ValueChanged.InvokeAsync((ToolApprovalMode)args))"
 5                @attributes="AdditionalAttributes"
 6                Style="width: 135px;">
 7
 8    <Template>
 999        @render(context)
 10    </Template>
 11
 12    <ValueTemplate>
 3313        @render(context)
 14    </ValueTemplate>
 15
 16</RadzenDropDown>
 17
 18@code {
 5419    [Parameter] public ToolApprovalMode Value { get; set; }
 920    [Parameter] public EventCallback<ToolApprovalMode> ValueChanged { get; set; }
 21
 22    // Локальный RenderFragment для исключения дублирования кода шаблонов
 13223    private RenderFragment render(ToolApprovalMode mode) => __builder =>
 13224    {
 13225        var info = GetModeInfo(mode);
 13226        <div style="display: flex; align-items: center; gap: 8px;">
 13227            <RadzenIcon Icon="@info.Icon" Style="@($"color: {info.Color}; vertical-align: middle;")" />
 13228            <span>@info.Text</span>
 13229        </div>
 13230    };
 13231
 13232    private (string Icon, string Color, string Text) GetModeInfo(ToolApprovalMode mode) => mode switch
 13233    {
 5534        ToolApprovalMode.Allow => ("check_circle", "var(--rz-success)", SharedResource.ApprovalModeAuto),
 3935        ToolApprovalMode.Ask => ("help_outline", "var(--rz-warning)", SharedResource.ApprovalModeAsk),
 3836        ToolApprovalMode.Deny => ("cancel", "var(--rz-danger)", SharedResource.ApprovalModeDeny),
 13237        // лучше просто выключить вместо Deny, но вдруг захочется показать агенту тулзу, но не давать ее выполнить...
 038        _ => ("info", "gray", mode.ToString())
 13239    };
 13240
 13241    // Позволяет передавать любые другие атрибуты RadzenSwitch (напр. Title, TabIndex)
 13242    [Parameter(CaptureUnmatchedValues = true)]
 3443    public Dictionary<string, object>? AdditionalAttributes { get; set; }
 13244}