36b3af2e3d
PR Check / Code Quality: Format (push) Failing after 1s
PR Check / Code Quality: Lint (darwin) (push) Failing after 0s
PR Check / Code Quality: Lint (freebsd) (push) Failing after 1s
PR Check / Code Quality: Lint (windows) (push) Failing after 1s
PR Check / Code Quality: Lint (linux) (push) Failing after 1s
PR Check / Security: Vulnerability Scan (push) Failing after 0s
Update Documentation / update-docs (push) Failing after 2s
PR Check / Code Quality: Vendor (push) Failing after 1s
PR Check / Code Quality: Coverage (push) Failing after 0s
PR Check / Tests: Unit (macos-latest) (push) Has been cancelled
PR Check / Tests: Unit (ubuntu-24.04) (push) Has been cancelled
PR Check / Tests: Unit (ubuntu-24.04-arm) (push) Has been cancelled
PR Check / Tests: Unit (windows-latest) (push) Has been cancelled
46 lines
1.5 KiB
Go
46 lines
1.5 KiB
Go
package app
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/pranshuparmar/witr/internal/output"
|
|
"github.com/pranshuparmar/witr/pkg/model"
|
|
)
|
|
|
|
func TestPrintMultiMatch(t *testing.T) {
|
|
for _, color := range []bool{false, true} {
|
|
var buf bytes.Buffer
|
|
outp := output.NewPrinter(&buf)
|
|
// Anchor on our own PID so ReadProcess succeeds deterministically.
|
|
printMultiMatch(outp, []int{os.Getpid()}, color, "witr --pid 1234")
|
|
out := buf.String()
|
|
if !strings.Contains(out, "Multiple matching processes") || !strings.Contains(out, "witr --pid 1234") {
|
|
t.Errorf("color=%v: printMultiMatch output wrong:\n%s", color, out)
|
|
}
|
|
if strings.Contains(out, `\n`) {
|
|
t.Errorf("color=%v: layout newline escaped to a literal \\n:\n%s", color, out)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestPrintContainerMultiMatch(t *testing.T) {
|
|
matches := []*model.ContainerMatch{
|
|
{Name: "web", Image: "nginx:latest", Runtime: "docker", Status: "Up 3 min", Ports: "0.0.0.0:80->80/tcp"},
|
|
}
|
|
for _, color := range []bool{false, true} {
|
|
var buf bytes.Buffer
|
|
outp := output.NewPrinter(&buf)
|
|
printContainerMultiMatch(outp, matches, color)
|
|
out := buf.String()
|
|
if !strings.Contains(out, "Multiple matching containers") || !strings.Contains(out, "web") || !strings.Contains(out, "nginx:latest") {
|
|
t.Errorf("color=%v: printContainerMultiMatch output wrong:\n%s", color, out)
|
|
}
|
|
if strings.Contains(out, `\n`) {
|
|
t.Errorf("color=%v: layout newline escaped to a literal \\n:\n%s", color, out)
|
|
}
|
|
}
|
|
}
|