using Xunit; using ytLive.Helpers; using ytLive.Services.Audio; using ytLive.ViewModels; namespace ytLive.Tests; /// The TRAX bay shows the track, plays/pauses it, and carries a level. It got its OWN bay /// and its own meter on 2026-11-01 (creator ruling): the player measures its real output, so the /// ladder is not decorative, and living inside the game bay hid whether the bed was playing. /// Its fader moves a gain the player actually applies, separate from the desktop-mute follow. /// public class TraxBayTests { [Fact] public void The_trax_bay_is_its_own_bay_with_a_real_meter() { var dock = SourceAssert.Text("Controls", "AudioDock.xaml"); Assert.Contains("Text=\"{Binding TraxTrackLabel}\"", dock); // KISS (creator 2026-10-30): background music is one number and two ±5 dB buttons, not a // channel strip — and it has no ladder of its own, because the desktop bed already carries it. Assert.Contains("Click=\"TraxStepDown_Click\"", dock); Assert.Contains("Click=\"TraxStepUp_Click\"", dock); Assert.Contains("IsEnabled=\"{Binding CanLowerTrax}\"", dock); Assert.Contains("IsEnabled=\"{Binding CanRaiseTrax}\"", dock); Assert.Contains("Text=\"{Binding TraxVolumeDbLabel}\"", dock); Assert.Contains("Binding=\"{Binding IsMusicPlaying}\" Value=\"True\"", dock); Assert.Contains("Click=\"TraxPlayPause_Click\"", dock); // TRAX is its own bay, between GAME and LIP-SYNC, and it carries a real ladder bound to the // player's own level — "is the bed making sound" is not answerable from a play glyph. var traxRow = dock[dock.IndexOf("