48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package ui_test
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/Ullaakut/cameradar/v6"
|
|
"github.com/Ullaakut/cameradar/v6/internal/ui"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestPlainReporter_Outputs(t *testing.T) {
|
|
t.Run("prints events", func(t *testing.T) {
|
|
out := &bytes.Buffer{}
|
|
reporter := ui.NewPlainReporter(out, true)
|
|
|
|
reporter.Start(cameradar.StepScan, "starting")
|
|
reporter.Progress(cameradar.StepScan, "working")
|
|
reporter.Debug(cameradar.StepScan, "details")
|
|
reporter.Done(cameradar.StepScan, "finished")
|
|
reporter.Error(cameradar.StepScan, errors.New("boom"))
|
|
reporter.Summary([]cameradar.Stream{}, nil)
|
|
|
|
content := out.String()
|
|
assert.Contains(t, content, "[START] Scan targets: starting")
|
|
assert.Contains(t, content, "[INFO] Scan targets: working")
|
|
assert.Contains(t, content, "[DEBUG] Scan targets: details")
|
|
assert.Contains(t, content, "[DONE] Scan targets: finished")
|
|
assert.Contains(t, content, "[ERROR] Scan targets: boom")
|
|
assert.Contains(t, content, "Summary\n-------\nAccessible streams: 0")
|
|
})
|
|
|
|
t.Run("respects debug flag and empty input", func(t *testing.T) {
|
|
out := &bytes.Buffer{}
|
|
reporter := ui.NewPlainReporter(out, false)
|
|
|
|
reporter.Debug(cameradar.StepScan, "hidden")
|
|
reporter.Progress(cameradar.StepScan, "")
|
|
reporter.Error(cameradar.StepScan, nil)
|
|
|
|
content := out.String()
|
|
assert.NotContains(t, content, "DEBUG")
|
|
assert.Equal(t, "", strings.TrimSpace(content))
|
|
})
|
|
}
|