Files
Nonemm/tests/Nonemm.App.Tests/AvailableRowTests.cs
T
erikbrockoandClaude Sonnet 5.5 5e66778301 Match the Available Mults and Qs window to N1MM's screenshots
The summary table labels had no foreground set, so only the highlighted
numbers drew. The window now has the two-line Mults/Qs and Bands/Modes
buttons, a bold summary table, a list sorted on frequency, a ringed picked
row, a tick in the Mlt column and N1MM's empty-list message.

Bands & Modes opens a window with band groups and the CW, Phone, Digital and
Contest modes. The hover text uses SpotDescription like the bandmap, so
control characters and the cluster time are gone. Grid columns keep a
minimum width of their heading in the Available, Statistics and Network
status windows.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 13:00:22 +00:00

40 lines
1.1 KiB
C#

using Nonemm.App.Windows;
using Nonemm.Contests;
using Nonemm.Core;
using Nonemm.Session;
using Nonemm.Spotting;
namespace Nonemm.App.Tests;
public class AvailableRowTests
{
private static readonly DateTime Now = new(2026, 5, 30, 12, 0, 0, DateTimeKind.Utc);
private static AvailableRow Row(string comment)
{
Spot spot = new(
Callsign.Parse("DL1ABC"),
Frequency.FromKilohertz(14_025),
Now.AddMinutes(-5),
SpotSource.Cluster,
"OK1TEST",
comment);
return new AvailableRow(new AvailableStation(spot, Bands.Band20M, Verdict.Dupe), "CW", Now, null, false, false);
}
[Fact]
public void TheHoverTextHasNoControlCharactersOtherThanLineBreaks()
{
string tip = Row("CW 24 dB\r\a 1234Z\r\n").Tip;
Assert.DoesNotContain(tip, c => char.IsControl(c) && c != '\n');
}
[Fact]
public void TheHoverTextLeavesOutTheClusterTimeAndTheSideband()
{
Assert.DoesNotContain("1234Z", Row("CW 24 dB 1234Z").Tip);
Assert.Equal("14025.0 by OK1TEST, 5m ago", Row("USB").Tip);
}
}