chore: release v0.26.0
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
package qso
|
||||
|
||||
import "testing"
|
||||
|
||||
// The search box is the one place an operator types a callsign fragment, and
|
||||
// the three shapes below are what they expect from every other logger. A plain
|
||||
// word is a PREFIX: it used to be an unconditional contains-match, so asking
|
||||
// for "calls starting with 4S" was impossible.
|
||||
func TestQuickCallsignLike(t *testing.T) {
|
||||
for _, tc := range []struct{ in, want, why string }{
|
||||
{"4S", "4S%", "plain text is a prefix"},
|
||||
{"*4S", "%4S", "a leading star means ends-with"},
|
||||
{"*4S*", "%4S%", "stars both ends mean contains"},
|
||||
{"4S*", "4S%", "a trailing star is the same prefix, written out"},
|
||||
{"4S?", "4S_", "? is exactly one character"},
|
||||
{"*", "%", "a lone star matches everything"},
|
||||
{" 4S ", "4S%", "surrounding space is not part of the call"},
|
||||
// Escaping: a LIKE metacharacter the operator typed is a literal.
|
||||
{"A_B", "A!_B%", "_ typed by hand is a literal underscore"},
|
||||
{"50%", "50!%%", "% typed by hand is a literal percent"},
|
||||
{"A!B", "A!!B%", "the escape character escapes itself"},
|
||||
{"*A_B*", "%A!_B%", "escaping still applies inside a wildcard pattern"},
|
||||
} {
|
||||
if got := quickCallsignLike(tc.in); got != tc.want {
|
||||
t.Errorf("quickCallsignLike(%q) = %q, want %q — %s", tc.in, got, tc.want, tc.why)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user