feat(chase-new): drop the frequency column, the beacons and the bands you don't have
Three cuts, all of them removing things nobody could act on. The frequency column is gone. Clicking the row tunes the rig to it, so the number was there to be read and never used. It is still carried on the spot — the click is what needs it — and it is in the row's tooltip. The country takes the space. Modes are limited to FT8, FT4, FT2, PSK31 and RTTY. WSPR is the one worth spelling out: it is a beacon, nobody answers a WSPR transmission, so a "new entity on WSPR" is a path report and not a station to work — and on a quiet band it would have been most of the list. Bands are limited to the operator's own list. PSK Reporter carries every band its receivers listen on, and a 13 cm decode is not an opportunity for a station with no 13 cm. Both tests run before the status lookup and both read a cached map: they throw away most of the feed, so nothing downstream pays for it. The band list is re-read when the lists are saved, so ticking a band in Settings applies to the next decode rather than the next restart — which would have looked like the filter not working.
This commit is contained in:
@@ -71,3 +71,41 @@ func TestChaseNewStoreIsBounded(t *testing.T) {
|
||||
t.Errorf("kept %d rows, want the %d cap", got, chaseNewMax)
|
||||
}
|
||||
}
|
||||
|
||||
// The panel is for stations an operator can call. WSPR is a beacon — nobody
|
||||
// answers one — and on a quiet band it would be most of the list.
|
||||
func TestChaseModesExcludeBeaconsAndOddities(t *testing.T) {
|
||||
for _, m := range []string{"FT8", "FT4", "FT2", "PSK31", "RTTY"} {
|
||||
if !chaseModes[m] {
|
||||
t.Errorf("%s should be listed", m)
|
||||
}
|
||||
}
|
||||
for _, m := range []string{"WSPR", "JT65", "JT9", "FST4W", "Q65", "JS8", "MSK144", "OLIVIA", ""} {
|
||||
if chaseModes[m] {
|
||||
t.Errorf("%s should not be listed", m)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// A decode on a band the operator does not have is not an opportunity, it is a
|
||||
// row in the way — PSK Reporter carries microwave segments nobody in the region
|
||||
// is equipped for.
|
||||
func TestChaseBandAllowed(t *testing.T) {
|
||||
a := &App{}
|
||||
// Nothing loaded yet: show rather than swallow, or the panel would look
|
||||
// broken for the first seconds after it is switched on.
|
||||
if !a.chaseBandAllowed("13cm") {
|
||||
t.Error("with no band list loaded, nothing should be filtered")
|
||||
}
|
||||
a.chaseBands = map[string]bool{"20m": true, "40m": true, "6m": true}
|
||||
for _, b := range []string{"20m", "40m", "6m", " 20M "} {
|
||||
if !a.chaseBandAllowed(b) {
|
||||
t.Errorf("%q is in the operator's list and was dropped", b)
|
||||
}
|
||||
}
|
||||
for _, b := range []string{"13cm", "23cm", "2m", "630m", ""} {
|
||||
if a.chaseBandAllowed(b) {
|
||||
t.Errorf("%q is not in the operator's list and was kept", b)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user