V13-FE-011: finalize search list layout slice

This commit is contained in:
2026-08-09 02:57:26 +09:00
parent 9efd202e76
commit 6422cb2b13
984 changed files with 120811 additions and 1498 deletions
@@ -0,0 +1,14 @@
using Kbx.Shared.Integrations.Generated;
using Xunit;
namespace Kbx.Shared.Integrations.Tests;
public sealed class KbxDurableIntegrationRetryPlannerTests
{
[Fact]
public void StopsAfterConfiguredDurableAttempts()
{
var d = KbxIntegrationCatalog.All["integration.oms.wms.dispatch"];
var now = new DateTimeOffset(2026,8,8,9,0,0,TimeSpan.Zero);
Assert.NotNull(KbxDurableIntegrationRetryPlanner.NextAttemptAt(d, 1, now));
Assert.Null(KbxDurableIntegrationRetryPlanner.NextAttemptAt(d, d.LongRetryAttempts + 1, now));
}
}
@@ -0,0 +1,12 @@
using Kbx.Shared.Integrations;
using Xunit;
namespace Kbx.Shared.Integrations.Tests;
public sealed class KbxIntegrationFailureClassifierTests
{
[Theory]
[InlineData(408)] [InlineData(429)] [InlineData(500)] [InlineData(503)]
public void TransientHttpStatusesAreRetryable(int status) => Assert.Equal(KbxIntegrationFailureKind.Transient,KbxIntegrationFailureClassifier.ClassifyHttp(status));
[Theory]
[InlineData(400)] [InlineData(401)] [InlineData(403)] [InlineData(404)] [InlineData(422)]
public void ClientOrDomainRejectionsArePermanent(int status) => Assert.Equal(KbxIntegrationFailureKind.Permanent,KbxIntegrationFailureClassifier.ClassifyHttp(status));
}