fix: complete retail parity stability pass
All checks were successful
CI / linux-portable (push) Successful in 3m41s
CI / windows-gate (push) Successful in 6m49s
CI / release (push) Successful in 3m22s

This commit is contained in:
Erik 2026-08-28 20:01:39 +02:00
parent d3df4cb20a
commit f7aa8e0eb7
131 changed files with 7765 additions and 1190 deletions

View file

@ -312,8 +312,8 @@ public class ChatCommandRouterTests
// own client-local refusal.
[Theory]
[InlineData("/allegiance boot Bob")]
[InlineData("/all boot Bob")]
[InlineData("/allegiance nope Bob")]
[InlineData("/all nope Bob")]
public void AllegianceUnrecognizedSubcommand_ShowsRetailRefusal_NeverBroadcastsOrSends(string input)
{
// #363 / register row AP-183: retail types this refusal 0x1A
@ -331,6 +331,29 @@ public class ChatCommandRouterTests
Assert.Empty(log.Snapshot());
}
[Theory]
[InlineData("/allegiance boot Lord Bob", ClientCommandId.AllegianceBoot, "Lord Bob")]
[InlineData("/house storage add Lord Bob", ClientCommandId.HouseStorage, "add Lord Bob")]
[InlineData("/motd set Welcome home", ClientCommandId.AllegianceMotd, "set Welcome home")]
public void AdministrationCommand_PublishesTypedClientCommand(
string input,
ClientCommandId expected,
string expectedArguments)
{
var (vm, _, bus) = Fixture();
SubmitOutcome outcome = ChatCommandRouter.Submit(
input,
vm,
bus,
ChatChannelKind.Say);
Assert.Equal(SubmitOutcome.ClientHandled, outcome);
var command = Assert.IsType<ExecuteClientCommandCmd>(Assert.Single(bus.Published));
Assert.Equal(expected, command.Command);
Assert.Equal(expectedArguments, command.Arguments);
}
[Fact]
public void RegisteredChannelVerb_NeverReachesTheRawFallback()
{