Merge pull request '[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/cli/RFC.md fully. Find features des...' (#67) from agent/read---spec-code-core-go-cli-rfc-md-full into dev
All checks were successful
Security Scan / security (push) Successful in 23s
All checks were successful
Security Scan / security (push) Successful in 23s
This commit is contained in:
commit
53b5552554
2 changed files with 37 additions and 6 deletions
|
|
@ -105,6 +105,8 @@ func renderSearchResults(results []*gohelp.SearchResult, query string) error {
|
||||||
cli.Println("%s", cli.DimStr(" "+snippet))
|
cli.Println("%s", cli.DimStr(" "+snippet))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
cli.Blank()
|
||||||
|
renderHelpHint(query)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -112,7 +114,9 @@ func renderHelpHint(query string) {
|
||||||
cli.Hint("browse", "core help")
|
cli.Hint("browse", "core help")
|
||||||
if trimmed := strings.TrimSpace(query); trimmed != "" {
|
if trimmed := strings.TrimSpace(query); trimmed != "" {
|
||||||
cli.Hint("search", fmt.Sprintf("core help search %q", trimmed))
|
cli.Hint("search", fmt.Sprintf("core help search %q", trimmed))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
cli.Hint("search", "core help search <topic>")
|
||||||
}
|
}
|
||||||
|
|
||||||
func renderTopicList(topics []*gohelp.Topic) error {
|
func renderTopicList(topics []*gohelp.Topic) error {
|
||||||
|
|
@ -127,6 +131,8 @@ func renderTopicList(topics []*gohelp.Topic) error {
|
||||||
cli.Println("%s", cli.DimStr(" "+summary))
|
cli.Println("%s", cli.DimStr(" "+summary))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
cli.Blank()
|
||||||
|
renderHelpHint("")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -158,4 +164,6 @@ func renderTopic(t *gohelp.Topic) {
|
||||||
cli.Blank()
|
cli.Blank()
|
||||||
cli.Println("%s", t.Content)
|
cli.Println("%s", t.Content)
|
||||||
cli.Blank()
|
cli.Blank()
|
||||||
|
renderHelpHint(t.ID)
|
||||||
|
cli.Blank()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,8 @@ func TestAddHelpCommands_Good(t *testing.T) {
|
||||||
})
|
})
|
||||||
assert.Contains(t, out, "AVAILABLE HELP TOPICS")
|
assert.Contains(t, out, "AVAILABLE HELP TOPICS")
|
||||||
assert.Contains(t, out, topics[0].ID)
|
assert.Contains(t, out, topics[0].ID)
|
||||||
|
assert.Contains(t, out, "browse")
|
||||||
|
assert.Contains(t, out, "core help search <topic>")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAddHelpCommands_Good_Serve(t *testing.T) {
|
func TestAddHelpCommands_Good_Serve(t *testing.T) {
|
||||||
|
|
@ -118,6 +120,8 @@ func TestAddHelpCommands_Good_Search(t *testing.T) {
|
||||||
|
|
||||||
assert.Contains(t, out, "SEARCH RESULTS")
|
assert.Contains(t, out, "SEARCH RESULTS")
|
||||||
assert.Contains(t, out, query)
|
assert.Contains(t, out, query)
|
||||||
|
assert.Contains(t, out, "browse")
|
||||||
|
assert.Contains(t, out, "core help search")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRenderSearchResults_Good(t *testing.T) {
|
func TestRenderSearchResults_Good(t *testing.T) {
|
||||||
|
|
@ -137,6 +141,8 @@ func TestRenderSearchResults_Good(t *testing.T) {
|
||||||
assert.Contains(t, out, "SEARCH RESULTS")
|
assert.Contains(t, out, "SEARCH RESULTS")
|
||||||
assert.Contains(t, out, "config - Configuration")
|
assert.Contains(t, out, "config - Configuration")
|
||||||
assert.Contains(t, out, "Core is configured via environment variables.")
|
assert.Contains(t, out, "Core is configured via environment variables.")
|
||||||
|
assert.Contains(t, out, "browse")
|
||||||
|
assert.Contains(t, out, "core help search \"config\"")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRenderTopicList_Good(t *testing.T) {
|
func TestRenderTopicList_Good(t *testing.T) {
|
||||||
|
|
@ -154,6 +160,23 @@ func TestRenderTopicList_Good(t *testing.T) {
|
||||||
assert.Contains(t, out, "AVAILABLE HELP TOPICS")
|
assert.Contains(t, out, "AVAILABLE HELP TOPICS")
|
||||||
assert.Contains(t, out, "config - Configuration")
|
assert.Contains(t, out, "config - Configuration")
|
||||||
assert.Contains(t, out, "Core is configured via environment variables.")
|
assert.Contains(t, out, "Core is configured via environment variables.")
|
||||||
|
assert.Contains(t, out, "browse")
|
||||||
|
assert.Contains(t, out, "core help search <topic>")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRenderTopic_Good(t *testing.T) {
|
||||||
|
out := captureOutput(t, func() {
|
||||||
|
renderTopic(&gohelp.Topic{
|
||||||
|
ID: "config",
|
||||||
|
Title: "Configuration",
|
||||||
|
Content: "Core is configured via environment variables.",
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
assert.Contains(t, out, "Configuration")
|
||||||
|
assert.Contains(t, out, "Core is configured via environment variables.")
|
||||||
|
assert.Contains(t, out, "browse")
|
||||||
|
assert.Contains(t, out, "core help search \"config\"")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAddHelpCommands_Bad(t *testing.T) {
|
func TestAddHelpCommands_Bad(t *testing.T) {
|
||||||
|
|
@ -189,16 +212,16 @@ func TestAddHelpCommands_Bad(t *testing.T) {
|
||||||
root := &cli.Command{Use: "core"}
|
root := &cli.Command{Use: "core"}
|
||||||
AddHelpCommands(root)
|
AddHelpCommands(root)
|
||||||
|
|
||||||
cmd, _, err := root.Find([]string{"help", "search"})
|
cmd, _, findErr := root.Find([]string{"help", "search"})
|
||||||
require.NoError(t, err)
|
require.NoError(t, findErr)
|
||||||
require.NotNil(t, cmd)
|
require.NotNil(t, cmd)
|
||||||
|
|
||||||
var err error
|
var runErr error
|
||||||
out := captureOutput(t, func() {
|
out := captureOutput(t, func() {
|
||||||
err = cmd.RunE(cmd, nil)
|
runErr = cmd.RunE(cmd, nil)
|
||||||
})
|
})
|
||||||
require.Error(t, err)
|
require.Error(t, runErr)
|
||||||
assert.Contains(t, err.Error(), "help search query is required")
|
assert.Contains(t, runErr.Error(), "help search query is required")
|
||||||
assert.Contains(t, out, "browse")
|
assert.Contains(t, out, "browse")
|
||||||
assert.Contains(t, out, "core help")
|
assert.Contains(t, out, "core help")
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue