Some checks are pending
Security Scan / security (push) Waiting to run
- Remove banned imports (fmt, log, errors, os, strings, path/filepath, encoding/json) from all cmd/ packages; replace with core.* primitives and cli.* wrappers - Rename abbreviated variables (cfg→configuration, reg→registry, cmd→proc, c→toolCheck/checkBuilder, sb→builder, out→output, r→repo/reason, b→branchName) across config, doctor, pkgcmd, help - Add usage-example comments to all exported functions in pkg/cli (strings.go, log.go, i18n.go) - Add complete Good/Bad/Ugly test triads to all pkg/cli test files: new files for command, errors, frame_components, i18n, log, render, runtime, strings, utils; updated existing check, daemon, glyph, layout, output, ansi, commands, frame, prompt, stream, styles, tracker, tree Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
package cli
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestStrings_Good(t *testing.T) {
|
|
// Sprintf formats correctly.
|
|
result := Sprintf("Hello, %s! Count: %d", "world", 42)
|
|
if result != "Hello, world! Count: 42" {
|
|
t.Errorf("Sprintf: got %q", result)
|
|
}
|
|
|
|
// Sprint joins with spaces.
|
|
result = Sprint("foo", "bar")
|
|
if result == "" {
|
|
t.Error("Sprint: got empty string")
|
|
}
|
|
|
|
// SuccessStr, ErrorStr, WarnStr, InfoStr, DimStr return non-empty strings.
|
|
if SuccessStr("done") == "" {
|
|
t.Error("SuccessStr: got empty string")
|
|
}
|
|
if ErrorStr("fail") == "" {
|
|
t.Error("ErrorStr: got empty string")
|
|
}
|
|
if WarnStr("warn") == "" {
|
|
t.Error("WarnStr: got empty string")
|
|
}
|
|
if InfoStr("info") == "" {
|
|
t.Error("InfoStr: got empty string")
|
|
}
|
|
if DimStr("dim") == "" {
|
|
t.Error("DimStr: got empty string")
|
|
}
|
|
}
|
|
|
|
func TestStrings_Bad(t *testing.T) {
|
|
// Sprintf with no args returns the format string unchanged.
|
|
result := Sprintf("no args here")
|
|
if result != "no args here" {
|
|
t.Errorf("Sprintf no-args: got %q", result)
|
|
}
|
|
|
|
// Styled with nil style should not panic.
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
t.Errorf("Styled with nil style panicked: %v", r)
|
|
}
|
|
}()
|
|
Styled(nil, "text")
|
|
}
|
|
|
|
func TestStrings_Ugly(t *testing.T) {
|
|
SetColorEnabled(false)
|
|
defer SetColorEnabled(true)
|
|
|
|
// Without colour, styled strings contain the raw text.
|
|
result := Styled(NewStyle().Bold(), "core")
|
|
if !strings.Contains(result, "core") {
|
|
t.Errorf("Styled: expected 'core' in result, got %q", result)
|
|
}
|
|
|
|
// Styledf with empty format.
|
|
result = Styledf(DimStyle, "")
|
|
_ = result // should not panic
|
|
}
|