fix(ui): restore retail vitals and window interactions
All checks were successful
CI / linux-portable (push) Successful in 3m16s
CI / windows-gate (push) Successful in 5m41s
CI / release (push) Successful in 2m5s

This commit is contained in:
Erik 2026-08-20 13:26:35 +02:00
parent 4d84456c21
commit 1bd2b30291
36 changed files with 1462 additions and 86 deletions

View file

@ -628,6 +628,43 @@ public sealed class LiveSessionCommandRouterTests
isOlthoiPlayer: false).Status);
}
[Fact]
public void SettingsRouteLockUi_UpdatesCanonicalBitSynchronouslyAndSendsAutosave()
{
var characterState = new RuntimeCharacterState();
characterState.Options.SetOptionBit(
(uint)CharacterOptionId.LockUI,
false);
var sent = new List<(uint OptionId, bool Value)>();
LiveSessionCommandRouter router = NewRouter(
characterState: characterState,
sendSingleCharacterOption: (id, value) =>
characterState.Options.TrySetOption(
id,
value,
sendAutoSave: (sentId, sentValue) =>
sent.Add((sentId, sentValue))));
router.Activate();
router.Publish(new SetSingleCharacterOptionRuntimeCmd(
(uint)CharacterOptionId.LockUI,
true));
Assert.True(characterState.Options.GetOptionBit(CharacterOptionId.LockUI));
Assert.Equal([((uint)CharacterOptionId.LockUI, true)], sent);
router.Publish(new SetSingleCharacterOptionRuntimeCmd(
(uint)CharacterOptionId.LockUI,
false));
Assert.False(characterState.Options.GetOptionBit(CharacterOptionId.LockUI));
Assert.Equal(
[
((uint)CharacterOptionId.LockUI, true),
((uint)CharacterOptionId.LockUI, false),
], sent);
}
[Fact]
public void ShowWeenieErrorFriendsFull_ResolvesThroughAddText_AndLandsInSpewBoxNotChat()
{