Add inbound country flags and node load in location picker
CI / Backend (build + test) (push) Failing after 1m36s
CI / Frontend (lint + typecheck + build) (push) Successful in 41s

- Inbound.CountryCode (ISO alpha-2), set on publish; flag shown before
  the location name (SVG via country-flag-icons on the site, emoji in bot)
- Node.Capacity (optional, not a limit); available inbounds report load
  percent of capacity or active config count, sorted least loaded first

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Opus 5.5 committed 2026-10-06 19:45:17 +03:00
1 parent d7743977a1
commit bb5e59904f
51 files changed
+3160 -284

No files matched your search

@@ -0,0 +1,35 @@
using PnvPanel.Application.Admin.Inbounds;
using Xunit;
namespace PnvPanel.Application.Tests.Admin.Inbounds;
public class PublishInboundCommandValidatorTests
{
private readonly PublishInboundCommandValidator _validator = new();
private static PublishInboundCommand Command(string? countryCode) =>
new(Guid.NewGuid(), true, "EU Fast", countryCode, []);
[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("DE")]
[InlineData("nl")]
public void Validate_WithEmptyOrAlpha2CountryCode_IsValid(string? countryCode)
{
var result = _validator.Validate(Command(countryCode));
Assert.True(result.IsValid);
}
[Theory]
[InlineData("DEU")]
[InlineData("D")]
[InlineData("1E")]
public void Validate_WithInvalidCountryCode_IsInvalid(string countryCode)
{
var result = _validator.Validate(Command(countryCode));
Assert.False(result.IsValid);
}
}