Client: seek controls, Bazarr subtitle download and cast panel in the player; MDBList ratings strip; episode and schedule detail pages; series pace estimate; what's new panel; install-permission onboarding step; synced per-profile preferences; Emby outage banner. Gateway: rebuilt admin console (one fragment per page), preference history and restore, merged Continue Watching, Emby health probe, subtitle selection and Bazarr download, structured request logging with per-request identity, and embedded build version. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
21 lines
734 B
Go
21 lines
734 B
Go
package store
|
|
|
|
import "testing"
|
|
|
|
// The exemption is the safety of the whole rule: a build predating device naming calls
|
|
// itself "Memby TV", and a household with two of those would otherwise watch each set
|
|
// sign the other out every time somebody opened the app.
|
|
func TestSupersedeNameRefusesNamesThatIdentifyNothing(t *testing.T) {
|
|
for _, name := range []string{"", " ", DefaultDeviceName, "memby tv", " Memby TV "} {
|
|
if got := supersedeName(name); got != "" {
|
|
t.Fatalf("supersedeName(%q) = %q, want no match", name, got)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestSupersedeNameMatchesOnTheNameSomebodyTyped(t *testing.T) {
|
|
if got := supersedeName(" Living room "); got != "Living room" {
|
|
t.Fatalf("supersedeName trimmed to %q", got)
|
|
}
|
|
}
|