package display import "testing" func TestOSDTemplateStaysTransparentWhileVideoAbsent(t *testing.T) { canvas := &fakeCanvas{width: 800, height: 600} NewOSDTemplate(NewVideoPresence()).Draw(canvas) clears, flushes := canvas.drawCounts() if clears != 1 || flushes != 1 { t.Fatalf("clears=%d flushes=%d want 1 and 1", clears, flushes) } if lines := canvas.lines(); len(lines) != 0 { t.Fatalf("OSD lines=%q want none: the OSD is a telemetry surface, not a fallback", lines) } } func TestOSDTemplateStaysTransparentWhileVideoPresent(t *testing.T) { canvas := &fakeCanvas{width: 800, height: 600} presence := NewVideoPresence() presence.SetActive(true) NewOSDTemplate(presence).Draw(canvas) if lines := canvas.lines(); len(lines) != 0 { t.Fatalf("OSD lines=%q want none while video is present", lines) } } func TestOSDTemplateNeverDrawsTheFallbackText(t *testing.T) { canvas := &fakeCanvas{width: 800, height: 600} presence := NewVideoPresence() template := NewOSDTemplate(presence) for _, active := range []bool{false, true, false} { presence.SetActive(active) template.Draw(canvas) if lines := canvas.lines(); len(lines) != 0 { t.Fatalf("lines=%q after presence=%v want none", lines, active) } } }