refactor(recipe): enhance refactor handling with JSON collection and package path
- Introduce refactorJSONs to collect pure JSON from refactor steps for apply. - Update discoverFiles to respect recipe's package_path parameter. - Refine handleApplyStep to parse and apply changes more robustly. - Remove outdated test output files.
This commit is contained in:
parent
405286abd2
commit
18bbb67789
@ -24,6 +24,7 @@ func (r *Runner) Run() error {
|
|||||||
fmt.Printf("🍳 Starting recipe: %s v%s\n\n", r.Recipe.Name, r.Recipe.Version)
|
fmt.Printf("🍳 Starting recipe: %s v%s\n\n", r.Recipe.Name, r.Recipe.Version)
|
||||||
|
|
||||||
var previousResults []string
|
var previousResults []string
|
||||||
|
var refactorJSONs []string // collect only JSON from refactor steps
|
||||||
|
|
||||||
for _, step := range r.Recipe.Steps {
|
for _, step := range r.Recipe.Steps {
|
||||||
fmt.Printf("Step %d/%d: %s\n", step.Number, len(r.Recipe.Steps), step.Title)
|
fmt.Printf("Step %d/%d: %s\n", step.Number, len(r.Recipe.Steps), step.Title)
|
||||||
@ -38,15 +39,15 @@ func (r *Runner) Run() error {
|
|||||||
fmt.Println(result)
|
fmt.Println(result)
|
||||||
|
|
||||||
case strings.Contains(titleLower, "refactor"):
|
case strings.Contains(titleLower, "refactor"):
|
||||||
r.refactorFiles(previousResults) // <-- new one-file-at-a-time handler
|
r.refactorFiles(previousResults, &refactorJSONs)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
case strings.Contains(titleLower, "apply") || strings.Contains(titleLower, "patch"):
|
case strings.Contains(titleLower, "apply") || strings.Contains(titleLower, "patch"):
|
||||||
r.handleApplyStep(previousResults)
|
r.handleApplyStep(refactorJSONs)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// fallback for any other step
|
// fallback
|
||||||
prompt := fmt.Sprintf(`Recipe Overview:
|
prompt := fmt.Sprintf(`Recipe Overview:
|
||||||
%s
|
%s
|
||||||
|
|
||||||
@ -81,10 +82,17 @@ Execute this step now. Respond ONLY with the expected output format — no expla
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// discoverFiles — real filesystem scan (we'll generalize with extensions next)
|
// discoverFiles now respects the package_path parameter from the recipe
|
||||||
func (r *Runner) discoverFiles() []string {
|
func (r *Runner) discoverFiles() []string {
|
||||||
var files []string
|
var files []string
|
||||||
|
|
||||||
|
// Use parameter if present, otherwise fall back to internal
|
||||||
root := "internal"
|
root := "internal"
|
||||||
|
if p, ok := r.Recipe.Parameters["package_path"]; ok {
|
||||||
|
if def, ok := p.Default.(string); ok && def != "" {
|
||||||
|
root = def
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_ = filepath.WalkDir(root, func(path string, d os.DirEntry, err error) error {
|
_ = filepath.WalkDir(root, func(path string, d os.DirEntry, err error) error {
|
||||||
if err != nil || d.IsDir() || !strings.HasSuffix(path, ".go") {
|
if err != nil || d.IsDir() || !strings.HasSuffix(path, ".go") {
|
||||||
@ -103,8 +111,8 @@ func (r *Runner) discoverFiles() []string {
|
|||||||
return files
|
return files
|
||||||
}
|
}
|
||||||
|
|
||||||
// refactorFiles — one file at a time (small JSON, no truncation)
|
// refactorFiles — one file at a time, stores pure JSON for apply step
|
||||||
func (r *Runner) refactorFiles(previousResults []string) {
|
func (r *Runner) refactorFiles(previousResults []string, refactorJSONs *[]string) {
|
||||||
discoveredLine := previousResults[len(previousResults)-1]
|
discoveredLine := previousResults[len(previousResults)-1]
|
||||||
lines := strings.Split(discoveredLine, "\n")
|
lines := strings.Split(discoveredLine, "\n")
|
||||||
|
|
||||||
@ -142,8 +150,7 @@ Original file:
|
|||||||
response := r.Client.Stream(messages, r.Model)
|
response := r.Client.Stream(messages, r.Model)
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
|
|
||||||
// store the JSON response for the apply step
|
*refactorJSONs = append(*refactorJSONs, response)
|
||||||
previousResults = append(previousResults, response)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,24 +159,23 @@ type FileChange struct {
|
|||||||
Content string `json:"content"`
|
Content string `json:"content"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Runner) handleApplyStep(previousResults []string) {
|
func (r *Runner) handleApplyStep(refactorJSONs []string) {
|
||||||
if len(previousResults) == 0 {
|
if len(refactorJSONs) == 0 {
|
||||||
fmt.Println(" ⚠️ No previous results to apply — skipping.")
|
fmt.Println(" ⚠️ No refactored files to apply — skipping.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// collect all JSON objects from the refactor step(s)
|
|
||||||
var allChanges []FileChange
|
var allChanges []FileChange
|
||||||
for _, res := range previousResults {
|
for _, jsonStr := range refactorJSONs {
|
||||||
start := strings.Index(res, "{")
|
// Find the JSON object in the response
|
||||||
end := strings.LastIndex(res, "}") + 1
|
start := strings.Index(jsonStr, "{")
|
||||||
|
end := strings.LastIndex(jsonStr, "}") + 1
|
||||||
if start == -1 {
|
if start == -1 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
jsonStr := res[start:end]
|
|
||||||
|
|
||||||
var ch FileChange
|
var ch FileChange
|
||||||
if err := json.Unmarshal([]byte(jsonStr), &ch); err == nil {
|
if err := json.Unmarshal([]byte(jsonStr[start:end]), &ch); err == nil && ch.File != "" {
|
||||||
allChanges = append(allChanges, ch)
|
allChanges = append(allChanges, ch)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
644
test_output.txt
644
test_output.txt
@ -1,644 +0,0 @@
|
|||||||
? gmgauthier.com/grokkit [no test files]
|
|
||||||
=== RUN TestAgentCommand_PlanGeneration
|
|
||||||
agent_test.go:8: Agent plan generation test placeholder — ready for expansion
|
|
||||||
--- PASS: TestAgentCommand_PlanGeneration (0.00s)
|
|
||||||
=== RUN TestAgentCommand_CleanCodeResponseIntegration
|
|
||||||
--- PASS: TestAgentCommand_CleanCodeResponseIntegration (0.00s)
|
|
||||||
=== RUN TestBuildChangelogMessages
|
|
||||||
=== PAUSE TestBuildChangelogMessages
|
|
||||||
=== RUN TestBuildFullChangelog
|
|
||||||
=== PAUSE TestBuildFullChangelog
|
|
||||||
=== RUN TestChangelogCmd_Flags
|
|
||||||
=== PAUSE TestChangelogCmd_Flags
|
|
||||||
=== RUN TestGetChatHistoryFile
|
|
||||||
--- PASS: TestGetChatHistoryFile (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_NoFile
|
|
||||||
--- PASS: TestLoadChatHistory_NoFile (0.00s)
|
|
||||||
=== RUN TestSaveAndLoadChatHistory
|
|
||||||
--- PASS: TestSaveAndLoadChatHistory (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_InvalidJSON
|
|
||||||
--- PASS: TestLoadChatHistory_InvalidJSON (0.00s)
|
|
||||||
=== RUN TestBuildCommitMessages
|
|
||||||
=== RUN TestBuildCommitMessages/normal_diff
|
|
||||||
=== RUN TestBuildCommitMessages/empty_diff
|
|
||||||
--- PASS: TestBuildCommitMessages (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/normal_diff (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestCompletionCmd
|
|
||||||
=== RUN TestCompletionCmd/bash
|
|
||||||
=== RUN TestCompletionCmd/zsh
|
|
||||||
=== RUN TestCompletionCmd/fish
|
|
||||||
=== RUN TestCompletionCmd/powershell
|
|
||||||
--- PASS: TestCompletionCmd (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/bash (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/zsh (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/fish (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/powershell (0.00s)
|
|
||||||
=== RUN TestBuildDocsMessages
|
|
||||||
=== RUN TestBuildDocsMessages/Go
|
|
||||||
=== RUN TestBuildDocsMessages/Python
|
|
||||||
=== RUN TestBuildDocsMessages/C
|
|
||||||
=== RUN TestBuildDocsMessages/C++
|
|
||||||
=== RUN TestBuildDocsMessages/JavaScript
|
|
||||||
=== RUN TestBuildDocsMessages/TypeScript
|
|
||||||
=== RUN TestBuildDocsMessages/Rust
|
|
||||||
=== RUN TestBuildDocsMessages/Ruby
|
|
||||||
=== RUN TestBuildDocsMessages/Java
|
|
||||||
=== RUN TestBuildDocsMessages/Shell
|
|
||||||
--- PASS: TestBuildDocsMessages (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Go (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Python (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C++ (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/JavaScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/TypeScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Rust (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Ruby (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Java (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Shell (0.00s)
|
|
||||||
=== RUN TestDocStyle
|
|
||||||
=== RUN TestDocStyle/go
|
|
||||||
=== RUN TestDocStyle/Go
|
|
||||||
=== RUN TestDocStyle/python
|
|
||||||
=== RUN TestDocStyle/c
|
|
||||||
=== RUN TestDocStyle/c++
|
|
||||||
=== RUN TestDocStyle/javascript
|
|
||||||
=== RUN TestDocStyle/typescript
|
|
||||||
=== RUN TestDocStyle/rust
|
|
||||||
=== RUN TestDocStyle/ruby
|
|
||||||
=== RUN TestDocStyle/java
|
|
||||||
=== RUN TestDocStyle/shell
|
|
||||||
=== RUN TestDocStyle/bash
|
|
||||||
=== RUN TestDocStyle/unknown
|
|
||||||
--- PASS: TestDocStyle (0.00s)
|
|
||||||
--- PASS: TestDocStyle/go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/Go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/python (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c++ (0.00s)
|
|
||||||
--- PASS: TestDocStyle/javascript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/typescript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/rust (0.00s)
|
|
||||||
--- PASS: TestDocStyle/ruby (0.00s)
|
|
||||||
--- PASS: TestDocStyle/java (0.00s)
|
|
||||||
--- PASS: TestDocStyle/shell (0.00s)
|
|
||||||
--- PASS: TestDocStyle/bash (0.00s)
|
|
||||||
--- PASS: TestDocStyle/unknown (0.00s)
|
|
||||||
=== RUN TestRemoveLastModifiedComments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_last_modified_comment
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_multiple_last_modified_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_code_without_last_modified
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_empty_string
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_other_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_line_with_only_last_modified
|
|
||||||
--- PASS: TestRemoveLastModifiedComments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_last_modified_comment (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_multiple_last_modified_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_code_without_last_modified (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_empty_string (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_other_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_line_with_only_last_modified (0.00s)
|
|
||||||
=== RUN TestEditCommand
|
|
||||||
--- PASS: TestEditCommand (0.68s)
|
|
||||||
=== RUN TestBuildHistoryMessages
|
|
||||||
=== RUN TestBuildHistoryMessages/with_recent_commits
|
|
||||||
=== RUN TestBuildHistoryMessages/empty_log
|
|
||||||
--- PASS: TestBuildHistoryMessages (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/with_recent_commits (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/empty_log (0.00s)
|
|
||||||
=== RUN TestBuildLintFixMessages
|
|
||||||
=== RUN TestBuildLintFixMessages/go_file_with_issues
|
|
||||||
=== RUN TestBuildLintFixMessages/python_file_with_issues
|
|
||||||
--- PASS: TestBuildLintFixMessages (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/go_file_with_issues (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/python_file_with_issues (0.00s)
|
|
||||||
=== RUN TestBuildPRDescribeMessages
|
|
||||||
=== RUN TestBuildPRDescribeMessages/branch_with_changes
|
|
||||||
=== RUN TestBuildPRDescribeMessages/empty_diff
|
|
||||||
--- PASS: TestBuildPRDescribeMessages (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/branch_with_changes (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestBuildReviewMessages
|
|
||||||
=== RUN TestBuildReviewMessages/with_status_and_diff
|
|
||||||
=== RUN TestBuildReviewMessages/empty_diff
|
|
||||||
--- PASS: TestBuildReviewMessages (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/with_status_and_diff (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestExecute
|
|
||||||
=== RUN TestExecute/version
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/help
|
|
||||||
A fast, native Go CLI for Grok. Chat, edit files, and supercharge your git workflow.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
grokkit [command]
|
|
||||||
|
|
||||||
Available Commands:
|
|
||||||
agent Multi-file agent — Grok intelligently edits multiple files with preview
|
|
||||||
changelog Generate CHANGELOG.md section from git history for Gitea releases
|
|
||||||
chat Simple interactive CLI chat with Grok (full history + streaming)
|
|
||||||
commit Generate message and commit staged changes
|
|
||||||
commit-msg Generate conventional commit message from staged changes
|
|
||||||
completion Generate shell completion script
|
|
||||||
docs Generate documentation comments for source files
|
|
||||||
edit Edit a file in-place with Grok (safe preview)
|
|
||||||
help Help about any command
|
|
||||||
history Summarize recent git history
|
|
||||||
lint Lint a file and optionally apply AI-suggested fixes
|
|
||||||
pr-describe Generate full PR description from current branch
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
recipe Run a recipe (transactional sous-chef mode)
|
|
||||||
review Review the current repository or directory
|
|
||||||
scaffold Scaffold a new file with Grok (safe preview + confirmation)
|
|
||||||
testgen Generate AI unit tests for files (Go/Python/C/C++, preview/apply)
|
|
||||||
version Print the version information
|
|
||||||
|
|
||||||
Flags:
|
|
||||||
--debug Enable debug logging (logs to stderr and file)
|
|
||||||
-h, --help help for grokkit
|
|
||||||
-m, --model string Grok model to use (overrides config)
|
|
||||||
-v, --verbose Enable verbose logging
|
|
||||||
|
|
||||||
Use "grokkit [command] --help" for more information about a command.
|
|
||||||
=== RUN TestExecute/debug_flag
|
|
||||||
{"time":"2026-03-06T21:37:40.647542566Z","level":"INFO","msg":"grokkit starting","command":"version","log_level":"debug"}
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/verbose_flag
|
|
||||||
grokkit version dev (commit )\n--- PASS: TestExecute (0.00s)
|
|
||||||
--- PASS: TestExecute/version (0.00s)
|
|
||||||
--- PASS: TestExecute/help (0.00s)
|
|
||||||
--- PASS: TestExecute/debug_flag (0.00s)
|
|
||||||
--- PASS: TestExecute/verbose_flag (0.00s)
|
|
||||||
=== RUN TestRunHistory
|
|
||||||
=== RUN TestRunHistory/calls_AI_with_log_output
|
|
||||||
Summarizing recent commits...
|
|
||||||
=== RUN TestRunHistory/no_commits_—_skips_AI
|
|
||||||
No commits found.
|
|
||||||
=== RUN TestRunHistory/git_error_—_skips_AI
|
|
||||||
Failed to get git log: not a git repo
|
|
||||||
--- PASS: TestRunHistory (0.00s)
|
|
||||||
--- PASS: TestRunHistory/calls_AI_with_log_output (0.00s)
|
|
||||||
--- PASS: TestRunHistory/no_commits_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunHistory/git_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunReview
|
|
||||||
=== RUN TestRunReview/reviews_with_diff_and_status
|
|
||||||
Grok is reviewing the repo...
|
|
||||||
=== RUN TestRunReview/git_diff_error_—_skips_AI
|
|
||||||
Failed to get git diff: git error
|
|
||||||
=== RUN TestRunReview/git_status_error_—_skips_AI
|
|
||||||
Failed to get git status: git error
|
|
||||||
--- PASS: TestRunReview (0.00s)
|
|
||||||
--- PASS: TestRunReview/reviews_with_diff_and_status (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_diff_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_status_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunCommit
|
|
||||||
=== RUN TestRunCommit/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommit/git_error_—_skips_AI
|
|
||||||
Failed to get staged changes: not a git repo
|
|
||||||
=== RUN TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin
|
|
||||||
Generating commit message...
|
|
||||||
|
|
||||||
Proposed commit message:
|
|
||||||
feat(cmd): add thing
|
|
||||||
Commit with this message? (y/n):
|
|
||||||
Aborted.
|
|
||||||
--- PASS: TestRunCommit (0.00s)
|
|
||||||
--- PASS: TestRunCommit/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/git_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin (0.00s)
|
|
||||||
=== RUN TestRunCommitMsg
|
|
||||||
=== RUN TestRunCommitMsg/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message
|
|
||||||
Generating commit message...
|
|
||||||
--- PASS: TestRunCommitMsg (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message (0.00s)
|
|
||||||
=== RUN TestRunPRDescribe
|
|
||||||
=== RUN TestRunPRDescribe/no_changes_on_branch_—_skips_AI
|
|
||||||
No changes on this branch compared to master/origin/master.
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/uses_custom_base_branch
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/defaults_to_master
|
|
||||||
Writing PR description...
|
|
||||||
--- PASS: TestRunPRDescribe (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/no_changes_on_branch_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/uses_custom_base_branch (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/defaults_to_master (0.00s)
|
|
||||||
=== RUN TestRunLintFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestRunLintFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestProcessDocsFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileUnsupportedLanguage
|
|
||||||
⚠️ Skipping /tmp/test2101107302.xyz: unsupported file type: .xyz
|
|
||||||
--- PASS: TestProcessDocsFileUnsupportedLanguage (0.00s)
|
|
||||||
=== RUN TestProcessDocsFilePreviewAndCancel
|
|
||||||
📝 Generating Go docs for: /tmp/test533748323.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Foo does nothing.
|
|
||||||
func Foo() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Apply documentation to /tmp/test533748323.go? (y/N):
|
|
||||||
❌ Cancelled. No changes made to: /tmp/test533748323.go
|
|
||||||
--- PASS: TestProcessDocsFilePreviewAndCancel (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileAutoApply
|
|
||||||
📝 Generating Go docs for: /tmp/test2461183796.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Bar does nothing.
|
|
||||||
func Bar() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
✅ Documentation applied: /tmp/test2461183796.go
|
|
||||||
--- PASS: TestProcessDocsFileAutoApply (0.00s)
|
|
||||||
=== RUN TestRunDocs
|
|
||||||
❌ File not found: /nonexistent/file.go
|
|
||||||
--- PASS: TestRunDocs (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd
|
|
||||||
scaffold_test.go:15: ✓ Fast scaffold unit test (no Grok API call)
|
|
||||||
--- PASS: TestScaffoldCmd (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd_Live
|
|
||||||
scaffold_test.go:22: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestScaffoldCmd_Live -short -v
|
|
||||||
--- SKIP: TestScaffoldCmd_Live (0.00s)
|
|
||||||
=== RUN TestTestgenCmd
|
|
||||||
=== PAUSE TestTestgenCmd
|
|
||||||
=== RUN TestTestgenCmd_Live
|
|
||||||
testgen_test.go:17: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestTestgenCmd_Live -short -v
|
|
||||||
--- SKIP: TestTestgenCmd_Live (0.00s)
|
|
||||||
=== RUN TestRemoveSourceComments
|
|
||||||
=== PAUSE TestRemoveSourceComments
|
|
||||||
=== RUN TestGetTestPrompt
|
|
||||||
=== PAUSE TestGetTestPrompt
|
|
||||||
=== RUN TestGetTestFilePath
|
|
||||||
=== PAUSE TestGetTestFilePath
|
|
||||||
=== RUN TestGetCodeLang
|
|
||||||
=== PAUSE TestGetCodeLang
|
|
||||||
=== CONT TestBuildChangelogMessages
|
|
||||||
=== CONT TestRemoveSourceComments
|
|
||||||
--- PASS: TestBuildChangelogMessages (0.00s)
|
|
||||||
=== CONT TestGetCodeLang
|
|
||||||
=== RUN TestRemoveSourceComments/no_comments
|
|
||||||
=== RUN TestGetCodeLang/Go
|
|
||||||
=== PAUSE TestRemoveSourceComments/no_comments
|
|
||||||
=== CONT TestChangelogCmd_Flags
|
|
||||||
=== RUN TestRemoveSourceComments/last_modified
|
|
||||||
=== CONT TestGetTestFilePath
|
|
||||||
=== PAUSE TestRemoveSourceComments/last_modified
|
|
||||||
=== RUN TestGetTestFilePath/foo.go_Go
|
|
||||||
=== RUN TestRemoveSourceComments/generated_by
|
|
||||||
=== PAUSE TestRemoveSourceComments/generated_by
|
|
||||||
=== CONT TestTestgenCmd
|
|
||||||
=== RUN TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== PAUSE TestGetTestFilePath/foo.go_Go
|
|
||||||
=== PAUSE TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== RUN TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
--- PASS: TestChangelogCmd_Flags (0.00s)
|
|
||||||
=== RUN TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== PAUSE TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== PAUSE TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== RUN TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestRemoveSourceComments/python_testgen
|
|
||||||
=== CONT TestGetTestPrompt
|
|
||||||
=== PAUSE TestRemoveSourceComments/python_testgen
|
|
||||||
=== PAUSE TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestGetTestPrompt/Go
|
|
||||||
=== RUN TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== RUN TestRemoveSourceComments/c_testgen
|
|
||||||
=== PAUSE TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== PAUSE TestGetTestPrompt/Go
|
|
||||||
=== CONT TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== RUN TestGetTestPrompt/Python
|
|
||||||
=== PAUSE TestGetTestPrompt/Python
|
|
||||||
=== RUN TestGetTestPrompt/C
|
|
||||||
=== CONT TestGetTestFilePath/foo.go_Go
|
|
||||||
=== PAUSE TestGetTestPrompt/C
|
|
||||||
=== NAME TestTestgenCmd
|
|
||||||
testgen_test.go:12: ✓ Fast testgen unit test (no Grok API call)
|
|
||||||
=== RUN TestGetTestPrompt/C++
|
|
||||||
--- PASS: TestTestgenCmd (0.00s)
|
|
||||||
=== PAUSE TestGetTestPrompt/C++
|
|
||||||
=== CONT TestBuildFullChangelog
|
|
||||||
=== RUN TestGetTestPrompt/Invalid
|
|
||||||
=== PAUSE TestGetTestPrompt/Invalid
|
|
||||||
=== CONT TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== CONT TestGetTestPrompt/Invalid
|
|
||||||
=== RUN TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== CONT TestGetTestPrompt/C++
|
|
||||||
=== CONT TestGetTestPrompt/Python
|
|
||||||
=== PAUSE TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== PAUSE TestGetCodeLang/Go
|
|
||||||
=== RUN TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== RUN TestGetCodeLang/Python
|
|
||||||
=== PAUSE TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== PAUSE TestGetCodeLang/Python
|
|
||||||
=== CONT TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== RUN TestGetCodeLang/C
|
|
||||||
=== PAUSE TestGetCodeLang/C
|
|
||||||
=== RUN TestGetCodeLang/C++
|
|
||||||
=== PAUSE TestGetCodeLang/C++
|
|
||||||
=== CONT TestGetCodeLang/Go
|
|
||||||
=== CONT TestGetCodeLang/C++
|
|
||||||
=== CONT TestGetTestFilePath/bar.c_C
|
|
||||||
=== CONT TestGetCodeLang/C
|
|
||||||
=== CONT TestGetCodeLang/Python
|
|
||||||
=== PAUSE TestRemoveSourceComments/c_testgen
|
|
||||||
--- PASS: TestGetTestFilePath (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/dir/foo.py_Python (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/foo.go_Go (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/baz.cpp_C++ (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/bar.c_C (0.00s)
|
|
||||||
=== CONT TestGetTestPrompt/Go
|
|
||||||
=== CONT TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
--- PASS: TestGetCodeLang (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Go (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C++ (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Python (0.00s)
|
|
||||||
=== CONT TestRemoveSourceComments/last_modified
|
|
||||||
=== CONT TestRemoveSourceComments/c_testgen
|
|
||||||
=== CONT TestGetTestPrompt/C
|
|
||||||
=== CONT TestRemoveSourceComments/python_testgen
|
|
||||||
=== CONT TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
--- PASS: TestGetTestPrompt (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Invalid (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C++ (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Python (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Go (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C (0.00s)
|
|
||||||
=== CONT TestRemoveSourceComments/no_comments
|
|
||||||
=== CONT TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== CONT TestRemoveSourceComments/generated_by
|
|
||||||
--- PASS: TestRemoveSourceComments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/partial_match_no_remove (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/last_modified (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/python_testgen (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/c_testgen (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/no_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/multiple_removable_lines (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/generated_by (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/prepends_to_existing_file (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/creates_new_file_with_header (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/cmd 0.692s
|
|
||||||
=== RUN TestGetModel
|
|
||||||
=== RUN TestGetModel/returns_flag_model_when_provided
|
|
||||||
=== RUN TestGetModel/returns_default_when_flag_empty
|
|
||||||
--- PASS: TestGetModel (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_flag_model_when_provided (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_default_when_flag_empty (0.00s)
|
|
||||||
=== RUN TestGetModelWithAlias
|
|
||||||
--- PASS: TestGetModelWithAlias (0.00s)
|
|
||||||
=== RUN TestGetCommandModel
|
|
||||||
=== RUN TestGetCommandModel/lint_
|
|
||||||
=== RUN TestGetCommandModel/lint_override
|
|
||||||
=== RUN TestGetCommandModel/other_
|
|
||||||
=== RUN TestGetCommandModel/unknown_
|
|
||||||
--- PASS: TestGetCommandModel (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_override (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/other_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/unknown_ (0.00s)
|
|
||||||
=== RUN TestLoad
|
|
||||||
--- PASS: TestLoad (0.00s)
|
|
||||||
=== RUN TestGetTemperature
|
|
||||||
--- PASS: TestGetTemperature (0.00s)
|
|
||||||
=== RUN TestGetTimeout
|
|
||||||
--- PASS: TestGetTimeout (0.00s)
|
|
||||||
=== RUN TestGetLogLevel
|
|
||||||
--- PASS: TestGetLogLevel (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/config (cached)
|
|
||||||
=== RUN TestGitError
|
|
||||||
--- PASS: TestGitError (0.00s)
|
|
||||||
=== RUN TestAPIError
|
|
||||||
=== RUN TestAPIError/with_status_code
|
|
||||||
=== RUN TestAPIError/without_status_code
|
|
||||||
--- PASS: TestAPIError (0.00s)
|
|
||||||
--- PASS: TestAPIError/with_status_code (0.00s)
|
|
||||||
--- PASS: TestAPIError/without_status_code (0.00s)
|
|
||||||
=== RUN TestFileError
|
|
||||||
--- PASS: TestFileError (0.00s)
|
|
||||||
=== RUN TestAPIErrorUnwrap
|
|
||||||
--- PASS: TestAPIErrorUnwrap (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/errors (cached)
|
|
||||||
=== RUN TestIsRepo
|
|
||||||
--- PASS: TestIsRepo (0.00s)
|
|
||||||
=== RUN TestRun
|
|
||||||
=== RUN TestRun/version_command_succeeds
|
|
||||||
=== RUN TestRun/invalid_command_fails
|
|
||||||
--- PASS: TestRun (0.01s)
|
|
||||||
--- PASS: TestRun/version_command_succeeds (0.00s)
|
|
||||||
--- PASS: TestRun/invalid_command_fails (0.01s)
|
|
||||||
=== RUN TestGitRunner
|
|
||||||
--- PASS: TestGitRunner (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/git (cached)
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_leading_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_multiple_languages
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_only_fence_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_empty_input
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_only_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_code_indentation
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_leading_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_multiple_languages (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_only_fence_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_empty_input (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_only_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_code_indentation (0.00s)
|
|
||||||
=== RUN TestCleanCodeResponse
|
|
||||||
=== RUN TestCleanCodeResponse/removes_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse/removes_language_tag
|
|
||||||
=== RUN TestCleanCodeResponse/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse/trims_whitespace
|
|
||||||
--- PASS: TestCleanCodeResponse (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_language_tag (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/trims_whitespace (0.00s)
|
|
||||||
=== RUN TestStreamSilent
|
|
||||||
--- PASS: TestStreamSilent (0.00s)
|
|
||||||
=== RUN TestStream
|
|
||||||
foobar
|
|
||||||
--- PASS: TestStream (0.00s)
|
|
||||||
=== RUN TestStreamWithTemp
|
|
||||||
response
|
|
||||||
--- PASS: TestStreamWithTemp (0.00s)
|
|
||||||
=== RUN TestStreamDoneSignal
|
|
||||||
--- PASS: TestStreamDoneSignal (0.00s)
|
|
||||||
=== RUN TestStreamEmptyResponse
|
|
||||||
--- PASS: TestStreamEmptyResponse (0.00s)
|
|
||||||
=== RUN TestNewClient
|
|
||||||
--- PASS: TestNewClient (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/grok (cached)
|
|
||||||
=== RUN TestDetectLanguage
|
|
||||||
=== RUN TestDetectLanguage/Go_file
|
|
||||||
=== RUN TestDetectLanguage/Python_file
|
|
||||||
=== RUN TestDetectLanguage/JavaScript_file
|
|
||||||
=== RUN TestDetectLanguage/JSX_file
|
|
||||||
=== RUN TestDetectLanguage/TypeScript_file
|
|
||||||
=== RUN TestDetectLanguage/TSX_file
|
|
||||||
=== RUN TestDetectLanguage/Rust_file
|
|
||||||
=== RUN TestDetectLanguage/Ruby_file
|
|
||||||
=== RUN TestDetectLanguage/Java_file
|
|
||||||
=== RUN TestDetectLanguage/C_file
|
|
||||||
=== RUN TestDetectLanguage/C++_file
|
|
||||||
=== RUN TestDetectLanguage/Header_file
|
|
||||||
=== RUN TestDetectLanguage/Shell_script
|
|
||||||
=== RUN TestDetectLanguage/Bash_script
|
|
||||||
=== RUN TestDetectLanguage/Unsupported_file
|
|
||||||
=== RUN TestDetectLanguage/No_extension
|
|
||||||
=== RUN TestDetectLanguage/Case_insensitive
|
|
||||||
--- PASS: TestDetectLanguage (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Go_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Python_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JavaScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TypeScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Rust_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Ruby_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Java_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C++_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Header_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Shell_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Bash_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Unsupported_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/No_extension (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Case_insensitive (0.00s)
|
|
||||||
=== RUN TestCheckLinterAvailable
|
|
||||||
=== RUN TestCheckLinterAvailable/go_command_should_be_available
|
|
||||||
linter_test.go:84: go should be available on system with Go installed: available=true
|
|
||||||
=== RUN TestCheckLinterAvailable/nonexistent_command
|
|
||||||
linter_test.go:84: nonexistent command should not be available: available=false
|
|
||||||
--- PASS: TestCheckLinterAvailable (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/go_command_should_be_available (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/nonexistent_command (0.00s)
|
|
||||||
=== RUN TestFindAvailableLinter
|
|
||||||
=== RUN TestFindAvailableLinter/Go_language_should_find_a_linter
|
|
||||||
=== RUN TestFindAvailableLinter/Language_with_no_available_linters
|
|
||||||
--- PASS: TestFindAvailableLinter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Go_language_should_find_a_linter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Language_with_no_available_linters (0.00s)
|
|
||||||
=== RUN TestRunLinter
|
|
||||||
=== RUN TestRunLinter/Run_go_vet_on_valid_file
|
|
||||||
linter_test.go:179: go vet result: ExitCode=0, HasIssues=false, Output=""
|
|
||||||
=== RUN TestRunLinter/Run_nonexistent_linter
|
|
||||||
--- PASS: TestRunLinter (0.09s)
|
|
||||||
--- PASS: TestRunLinter/Run_go_vet_on_valid_file (0.09s)
|
|
||||||
--- PASS: TestRunLinter/Run_nonexistent_linter (0.00s)
|
|
||||||
=== RUN TestLintFile
|
|
||||||
=== RUN TestLintFile/Lint_valid_Go_file
|
|
||||||
=== RUN TestLintFile/Lint_nonexistent_file
|
|
||||||
=== RUN TestLintFile/Lint_unsupported_file_type
|
|
||||||
--- PASS: TestLintFile (0.23s)
|
|
||||||
--- PASS: TestLintFile/Lint_valid_Go_file (0.23s)
|
|
||||||
--- PASS: TestLintFile/Lint_nonexistent_file (0.00s)
|
|
||||||
--- PASS: TestLintFile/Lint_unsupported_file_type (0.00s)
|
|
||||||
=== RUN TestGetSupportedLanguages
|
|
||||||
--- PASS: TestGetSupportedLanguages (0.00s)
|
|
||||||
=== RUN TestLanguageStructure
|
|
||||||
--- PASS: TestLanguageStructure (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/linter (cached)
|
|
||||||
=== RUN TestInit
|
|
||||||
=== RUN TestInit/default_level
|
|
||||||
=== RUN TestInit/debug_level
|
|
||||||
=== RUN TestInit/warn_level
|
|
||||||
=== RUN TestInit/error_level
|
|
||||||
=== RUN TestInit/invalid_level_defaults_to_info
|
|
||||||
--- PASS: TestInit (0.00s)
|
|
||||||
--- PASS: TestInit/default_level (0.00s)
|
|
||||||
--- PASS: TestInit/debug_level (0.00s)
|
|
||||||
--- PASS: TestInit/warn_level (0.00s)
|
|
||||||
--- PASS: TestInit/error_level (0.00s)
|
|
||||||
--- PASS: TestInit/invalid_level_defaults_to_info (0.00s)
|
|
||||||
=== RUN TestLogging
|
|
||||||
{"time":"2026-03-06T21:37:18.86971947Z","level":"DEBUG","msg":"test debug message","key":"value"}
|
|
||||||
{"time":"2026-03-06T21:37:18.869798249Z","level":"INFO","msg":"test info message","count":42}
|
|
||||||
{"time":"2026-03-06T21:37:18.869804305Z","level":"WARN","msg":"test warn message","enabled":true}
|
|
||||||
{"time":"2026-03-06T21:37:18.869808331Z","level":"ERROR","msg":"test error message","error":"something went wrong"}
|
|
||||||
--- PASS: TestLogging (0.00s)
|
|
||||||
=== RUN TestSetLevel
|
|
||||||
--- PASS: TestSetLevel (0.00s)
|
|
||||||
=== RUN TestWith
|
|
||||||
--- PASS: TestWith (0.00s)
|
|
||||||
=== RUN TestWithContext
|
|
||||||
=== RUN TestWithContext/without_init
|
|
||||||
=== RUN TestWithContext/with_init
|
|
||||||
--- PASS: TestWithContext (0.00s)
|
|
||||||
--- PASS: TestWithContext/without_init (0.00s)
|
|
||||||
--- PASS: TestWithContext/with_init (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/logger (cached)
|
|
||||||
=== RUN TestExtractCodeBlocks
|
|
||||||
=== PAUSE TestExtractCodeBlocks
|
|
||||||
=== CONT TestExtractCodeBlocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Single_block
|
|
||||||
=== RUN TestExtractCodeBlocks/Multiple_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/No_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Incomplete_block
|
|
||||||
--- PASS: TestExtractCodeBlocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Single_block (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Multiple_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/No_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Incomplete_block (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/recipe (cached)
|
|
||||||
=== RUN TestVersionInfo
|
|
||||||
=== PAUSE TestVersionInfo
|
|
||||||
=== CONT TestVersionInfo
|
|
||||||
=== RUN TestVersionInfo/Version
|
|
||||||
=== PAUSE TestVersionInfo/Version
|
|
||||||
=== RUN TestVersionInfo/Commit
|
|
||||||
=== PAUSE TestVersionInfo/Commit
|
|
||||||
=== RUN TestVersionInfo/BuildDate
|
|
||||||
=== PAUSE TestVersionInfo/BuildDate
|
|
||||||
=== CONT TestVersionInfo/Version
|
|
||||||
=== CONT TestVersionInfo/BuildDate
|
|
||||||
=== CONT TestVersionInfo/Commit
|
|
||||||
--- PASS: TestVersionInfo (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Version (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/BuildDate (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Commit (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/version (cached)
|
|
||||||
@ -1,644 +0,0 @@
|
|||||||
? gmgauthier.com/grokkit [no test files]
|
|
||||||
=== RUN TestAgentCommand_PlanGeneration
|
|
||||||
agent_test.go:8: Agent plan generation test placeholder — ready for expansion
|
|
||||||
--- PASS: TestAgentCommand_PlanGeneration (0.00s)
|
|
||||||
=== RUN TestAgentCommand_CleanCodeResponseIntegration
|
|
||||||
--- PASS: TestAgentCommand_CleanCodeResponseIntegration (0.00s)
|
|
||||||
=== RUN TestBuildChangelogMessages
|
|
||||||
=== PAUSE TestBuildChangelogMessages
|
|
||||||
=== RUN TestBuildFullChangelog
|
|
||||||
=== PAUSE TestBuildFullChangelog
|
|
||||||
=== RUN TestChangelogCmd_Flags
|
|
||||||
=== PAUSE TestChangelogCmd_Flags
|
|
||||||
=== RUN TestGetChatHistoryFile
|
|
||||||
--- PASS: TestGetChatHistoryFile (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_NoFile
|
|
||||||
--- PASS: TestLoadChatHistory_NoFile (0.00s)
|
|
||||||
=== RUN TestSaveAndLoadChatHistory
|
|
||||||
--- PASS: TestSaveAndLoadChatHistory (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_InvalidJSON
|
|
||||||
--- PASS: TestLoadChatHistory_InvalidJSON (0.00s)
|
|
||||||
=== RUN TestBuildCommitMessages
|
|
||||||
=== RUN TestBuildCommitMessages/normal_diff
|
|
||||||
=== RUN TestBuildCommitMessages/empty_diff
|
|
||||||
--- PASS: TestBuildCommitMessages (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/normal_diff (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestCompletionCmd
|
|
||||||
=== RUN TestCompletionCmd/bash
|
|
||||||
=== RUN TestCompletionCmd/zsh
|
|
||||||
=== RUN TestCompletionCmd/fish
|
|
||||||
=== RUN TestCompletionCmd/powershell
|
|
||||||
--- PASS: TestCompletionCmd (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/bash (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/zsh (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/fish (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/powershell (0.00s)
|
|
||||||
=== RUN TestBuildDocsMessages
|
|
||||||
=== RUN TestBuildDocsMessages/Go
|
|
||||||
=== RUN TestBuildDocsMessages/Python
|
|
||||||
=== RUN TestBuildDocsMessages/C
|
|
||||||
=== RUN TestBuildDocsMessages/C++
|
|
||||||
=== RUN TestBuildDocsMessages/JavaScript
|
|
||||||
=== RUN TestBuildDocsMessages/TypeScript
|
|
||||||
=== RUN TestBuildDocsMessages/Rust
|
|
||||||
=== RUN TestBuildDocsMessages/Ruby
|
|
||||||
=== RUN TestBuildDocsMessages/Java
|
|
||||||
=== RUN TestBuildDocsMessages/Shell
|
|
||||||
--- PASS: TestBuildDocsMessages (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Go (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Python (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C++ (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/JavaScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/TypeScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Rust (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Ruby (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Java (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Shell (0.00s)
|
|
||||||
=== RUN TestDocStyle
|
|
||||||
=== RUN TestDocStyle/go
|
|
||||||
=== RUN TestDocStyle/Go
|
|
||||||
=== RUN TestDocStyle/python
|
|
||||||
=== RUN TestDocStyle/c
|
|
||||||
=== RUN TestDocStyle/c++
|
|
||||||
=== RUN TestDocStyle/javascript
|
|
||||||
=== RUN TestDocStyle/typescript
|
|
||||||
=== RUN TestDocStyle/rust
|
|
||||||
=== RUN TestDocStyle/ruby
|
|
||||||
=== RUN TestDocStyle/java
|
|
||||||
=== RUN TestDocStyle/shell
|
|
||||||
=== RUN TestDocStyle/bash
|
|
||||||
=== RUN TestDocStyle/unknown
|
|
||||||
--- PASS: TestDocStyle (0.00s)
|
|
||||||
--- PASS: TestDocStyle/go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/Go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/python (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c++ (0.00s)
|
|
||||||
--- PASS: TestDocStyle/javascript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/typescript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/rust (0.00s)
|
|
||||||
--- PASS: TestDocStyle/ruby (0.00s)
|
|
||||||
--- PASS: TestDocStyle/java (0.00s)
|
|
||||||
--- PASS: TestDocStyle/shell (0.00s)
|
|
||||||
--- PASS: TestDocStyle/bash (0.00s)
|
|
||||||
--- PASS: TestDocStyle/unknown (0.00s)
|
|
||||||
=== RUN TestRemoveLastModifiedComments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_last_modified_comment
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_multiple_last_modified_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_code_without_last_modified
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_empty_string
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_other_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_line_with_only_last_modified
|
|
||||||
--- PASS: TestRemoveLastModifiedComments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_last_modified_comment (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_multiple_last_modified_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_code_without_last_modified (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_empty_string (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_other_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_line_with_only_last_modified (0.00s)
|
|
||||||
=== RUN TestEditCommand
|
|
||||||
--- PASS: TestEditCommand (0.81s)
|
|
||||||
=== RUN TestBuildHistoryMessages
|
|
||||||
=== RUN TestBuildHistoryMessages/with_recent_commits
|
|
||||||
=== RUN TestBuildHistoryMessages/empty_log
|
|
||||||
--- PASS: TestBuildHistoryMessages (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/with_recent_commits (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/empty_log (0.00s)
|
|
||||||
=== RUN TestBuildLintFixMessages
|
|
||||||
=== RUN TestBuildLintFixMessages/go_file_with_issues
|
|
||||||
=== RUN TestBuildLintFixMessages/python_file_with_issues
|
|
||||||
--- PASS: TestBuildLintFixMessages (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/go_file_with_issues (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/python_file_with_issues (0.00s)
|
|
||||||
=== RUN TestBuildPRDescribeMessages
|
|
||||||
=== RUN TestBuildPRDescribeMessages/branch_with_changes
|
|
||||||
=== RUN TestBuildPRDescribeMessages/empty_diff
|
|
||||||
--- PASS: TestBuildPRDescribeMessages (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/branch_with_changes (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestBuildReviewMessages
|
|
||||||
=== RUN TestBuildReviewMessages/with_status_and_diff
|
|
||||||
=== RUN TestBuildReviewMessages/empty_diff
|
|
||||||
--- PASS: TestBuildReviewMessages (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/with_status_and_diff (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestExecute
|
|
||||||
=== RUN TestExecute/version
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/help
|
|
||||||
A fast, native Go CLI for Grok. Chat, edit files, and supercharge your git workflow.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
grokkit [command]
|
|
||||||
|
|
||||||
Available Commands:
|
|
||||||
agent Multi-file agent — Grok intelligently edits multiple files with preview
|
|
||||||
changelog Generate CHANGELOG.md section from git history for Gitea releases
|
|
||||||
chat Simple interactive CLI chat with Grok (full history + streaming)
|
|
||||||
commit Generate message and commit staged changes
|
|
||||||
commit-msg Generate conventional commit message from staged changes
|
|
||||||
completion Generate shell completion script
|
|
||||||
docs Generate documentation comments for source files
|
|
||||||
edit Edit a file in-place with Grok (safe preview)
|
|
||||||
help Help about any command
|
|
||||||
history Summarize recent git history
|
|
||||||
lint Lint a file and optionally apply AI-suggested fixes
|
|
||||||
pr-describe Generate full PR description from current branch
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
recipe Run a recipe (transactional sous-chef mode)
|
|
||||||
review Review the current repository or directory
|
|
||||||
scaffold Scaffold a new file with Grok (safe preview + confirmation)
|
|
||||||
testgen Generate AI unit tests for files (Go/Python/C/C++, preview/apply)
|
|
||||||
version Print the version information
|
|
||||||
|
|
||||||
Flags:
|
|
||||||
--debug Enable debug logging (logs to stderr and file)
|
|
||||||
-h, --help help for grokkit
|
|
||||||
-m, --model string Grok model to use (overrides config)
|
|
||||||
-v, --verbose Enable verbose logging
|
|
||||||
|
|
||||||
Use "grokkit [command] --help" for more information about a command.
|
|
||||||
=== RUN TestExecute/debug_flag
|
|
||||||
{"time":"2026-03-06T21:38:16.151535509Z","level":"INFO","msg":"grokkit starting","command":"version","log_level":"debug"}
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/verbose_flag
|
|
||||||
grokkit version dev (commit )\n--- PASS: TestExecute (0.00s)
|
|
||||||
--- PASS: TestExecute/version (0.00s)
|
|
||||||
--- PASS: TestExecute/help (0.00s)
|
|
||||||
--- PASS: TestExecute/debug_flag (0.00s)
|
|
||||||
--- PASS: TestExecute/verbose_flag (0.00s)
|
|
||||||
=== RUN TestRunHistory
|
|
||||||
=== RUN TestRunHistory/calls_AI_with_log_output
|
|
||||||
Summarizing recent commits...
|
|
||||||
=== RUN TestRunHistory/no_commits_—_skips_AI
|
|
||||||
No commits found.
|
|
||||||
=== RUN TestRunHistory/git_error_—_skips_AI
|
|
||||||
Failed to get git log: not a git repo
|
|
||||||
--- PASS: TestRunHistory (0.00s)
|
|
||||||
--- PASS: TestRunHistory/calls_AI_with_log_output (0.00s)
|
|
||||||
--- PASS: TestRunHistory/no_commits_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunHistory/git_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunReview
|
|
||||||
=== RUN TestRunReview/reviews_with_diff_and_status
|
|
||||||
Grok is reviewing the repo...
|
|
||||||
=== RUN TestRunReview/git_diff_error_—_skips_AI
|
|
||||||
Failed to get git diff: git error
|
|
||||||
=== RUN TestRunReview/git_status_error_—_skips_AI
|
|
||||||
Failed to get git status: git error
|
|
||||||
--- PASS: TestRunReview (0.00s)
|
|
||||||
--- PASS: TestRunReview/reviews_with_diff_and_status (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_diff_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_status_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunCommit
|
|
||||||
=== RUN TestRunCommit/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommit/git_error_—_skips_AI
|
|
||||||
Failed to get staged changes: not a git repo
|
|
||||||
=== RUN TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin
|
|
||||||
Generating commit message...
|
|
||||||
|
|
||||||
Proposed commit message:
|
|
||||||
feat(cmd): add thing
|
|
||||||
Commit with this message? (y/n):
|
|
||||||
Aborted.
|
|
||||||
--- PASS: TestRunCommit (0.00s)
|
|
||||||
--- PASS: TestRunCommit/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/git_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin (0.00s)
|
|
||||||
=== RUN TestRunCommitMsg
|
|
||||||
=== RUN TestRunCommitMsg/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message
|
|
||||||
Generating commit message...
|
|
||||||
--- PASS: TestRunCommitMsg (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message (0.00s)
|
|
||||||
=== RUN TestRunPRDescribe
|
|
||||||
=== RUN TestRunPRDescribe/no_changes_on_branch_—_skips_AI
|
|
||||||
No changes on this branch compared to master/origin/master.
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/uses_custom_base_branch
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/defaults_to_master
|
|
||||||
Writing PR description...
|
|
||||||
--- PASS: TestRunPRDescribe (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/no_changes_on_branch_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/uses_custom_base_branch (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/defaults_to_master (0.00s)
|
|
||||||
=== RUN TestRunLintFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestRunLintFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestProcessDocsFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileUnsupportedLanguage
|
|
||||||
⚠️ Skipping /tmp/test1921082152.xyz: unsupported file type: .xyz
|
|
||||||
--- PASS: TestProcessDocsFileUnsupportedLanguage (0.00s)
|
|
||||||
=== RUN TestProcessDocsFilePreviewAndCancel
|
|
||||||
📝 Generating Go docs for: /tmp/test1474473091.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Foo does nothing.
|
|
||||||
func Foo() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Apply documentation to /tmp/test1474473091.go? (y/N):
|
|
||||||
❌ Cancelled. No changes made to: /tmp/test1474473091.go
|
|
||||||
--- PASS: TestProcessDocsFilePreviewAndCancel (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileAutoApply
|
|
||||||
📝 Generating Go docs for: /tmp/test2612240936.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Bar does nothing.
|
|
||||||
func Bar() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
✅ Documentation applied: /tmp/test2612240936.go
|
|
||||||
--- PASS: TestProcessDocsFileAutoApply (0.00s)
|
|
||||||
=== RUN TestRunDocs
|
|
||||||
❌ File not found: /nonexistent/file.go
|
|
||||||
--- PASS: TestRunDocs (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd
|
|
||||||
scaffold_test.go:15: ✓ Fast scaffold unit test (no Grok API call)
|
|
||||||
--- PASS: TestScaffoldCmd (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd_Live
|
|
||||||
scaffold_test.go:22: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestScaffoldCmd_Live -short -v
|
|
||||||
--- SKIP: TestScaffoldCmd_Live (0.00s)
|
|
||||||
=== RUN TestTestgenCmd
|
|
||||||
=== PAUSE TestTestgenCmd
|
|
||||||
=== RUN TestTestgenCmd_Live
|
|
||||||
testgen_test.go:17: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestTestgenCmd_Live -short -v
|
|
||||||
--- SKIP: TestTestgenCmd_Live (0.00s)
|
|
||||||
=== RUN TestRemoveSourceComments
|
|
||||||
=== PAUSE TestRemoveSourceComments
|
|
||||||
=== RUN TestGetTestPrompt
|
|
||||||
=== PAUSE TestGetTestPrompt
|
|
||||||
=== RUN TestGetTestFilePath
|
|
||||||
=== PAUSE TestGetTestFilePath
|
|
||||||
=== RUN TestGetCodeLang
|
|
||||||
=== PAUSE TestGetCodeLang
|
|
||||||
=== CONT TestBuildChangelogMessages
|
|
||||||
=== CONT TestGetCodeLang
|
|
||||||
=== RUN TestGetCodeLang/Go
|
|
||||||
=== CONT TestGetTestFilePath
|
|
||||||
--- PASS: TestBuildChangelogMessages (0.00s)
|
|
||||||
=== RUN TestGetTestFilePath/foo.go_Go
|
|
||||||
=== CONT TestBuildFullChangelog
|
|
||||||
=== RUN TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== PAUSE TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== CONT TestGetTestPrompt
|
|
||||||
=== RUN TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== PAUSE TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== RUN TestGetTestPrompt/Go
|
|
||||||
=== CONT TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== CONT TestTestgenCmd
|
|
||||||
=== PAUSE TestGetTestPrompt/Go
|
|
||||||
=== CONT TestRemoveSourceComments
|
|
||||||
=== RUN TestRemoveSourceComments/no_comments
|
|
||||||
=== NAME TestTestgenCmd
|
|
||||||
testgen_test.go:12: ✓ Fast testgen unit test (no Grok API call)
|
|
||||||
=== PAUSE TestRemoveSourceComments/no_comments
|
|
||||||
=== PAUSE TestGetTestFilePath/foo.go_Go
|
|
||||||
=== RUN TestRemoveSourceComments/last_modified
|
|
||||||
--- PASS: TestTestgenCmd (0.00s)
|
|
||||||
=== PAUSE TestRemoveSourceComments/last_modified
|
|
||||||
=== CONT TestChangelogCmd_Flags
|
|
||||||
=== CONT TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== RUN TestGetTestPrompt/Python
|
|
||||||
=== PAUSE TestGetCodeLang/Go
|
|
||||||
=== RUN TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== PAUSE TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== RUN TestRemoveSourceComments/generated_by
|
|
||||||
=== RUN TestGetCodeLang/Python
|
|
||||||
=== PAUSE TestRemoveSourceComments/generated_by
|
|
||||||
=== RUN TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
--- PASS: TestChangelogCmd_Flags (0.00s)
|
|
||||||
=== PAUSE TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== PAUSE TestGetTestPrompt/Python
|
|
||||||
=== RUN TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== RUN TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestGetTestPrompt/C
|
|
||||||
=== PAUSE TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== PAUSE TestGetTestPrompt/C
|
|
||||||
=== RUN TestRemoveSourceComments/python_testgen
|
|
||||||
=== RUN TestGetTestPrompt/C++
|
|
||||||
=== PAUSE TestRemoveSourceComments/python_testgen
|
|
||||||
=== PAUSE TestGetTestPrompt/C++
|
|
||||||
=== PAUSE TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestGetTestPrompt/Invalid
|
|
||||||
=== RUN TestRemoveSourceComments/c_testgen
|
|
||||||
=== RUN TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== PAUSE TestGetTestPrompt/Invalid
|
|
||||||
=== PAUSE TestRemoveSourceComments/c_testgen
|
|
||||||
=== PAUSE TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== CONT TestGetTestPrompt/Python
|
|
||||||
=== CONT TestRemoveSourceComments/no_comments
|
|
||||||
=== CONT TestGetTestFilePath/bar.c_C
|
|
||||||
=== CONT TestGetTestPrompt/C
|
|
||||||
=== CONT TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== CONT TestRemoveSourceComments/generated_by
|
|
||||||
=== CONT TestRemoveSourceComments/python_testgen
|
|
||||||
=== PAUSE TestGetCodeLang/Python
|
|
||||||
=== CONT TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== RUN TestGetCodeLang/C
|
|
||||||
=== PAUSE TestGetCodeLang/C
|
|
||||||
=== RUN TestGetCodeLang/C++
|
|
||||||
=== PAUSE TestGetCodeLang/C++
|
|
||||||
--- PASS: TestBuildFullChangelog (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/prepends_to_existing_file (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/creates_new_file_with_header (0.00s)
|
|
||||||
=== CONT TestRemoveSourceComments/c_testgen
|
|
||||||
=== CONT TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== CONT TestGetTestFilePath/foo.go_Go
|
|
||||||
=== CONT TestGetTestPrompt/Go
|
|
||||||
=== CONT TestGetTestPrompt/Invalid
|
|
||||||
=== CONT TestGetTestPrompt/C++
|
|
||||||
--- PASS: TestGetTestPrompt (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Python (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Go (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Invalid (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C++ (0.00s)
|
|
||||||
=== CONT TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== CONT TestRemoveSourceComments/last_modified
|
|
||||||
=== CONT TestGetCodeLang/Go
|
|
||||||
--- PASS: TestGetTestFilePath (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/bar.c_C (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/dir/foo.py_Python (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/foo.go_Go (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/baz.cpp_C++ (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/no_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/generated_by (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/python_testgen (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/partial_match_no_remove (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/c_testgen (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/multiple_removable_lines (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/last_modified (0.00s)
|
|
||||||
=== CONT TestGetCodeLang/C++
|
|
||||||
=== CONT TestGetCodeLang/Python
|
|
||||||
=== CONT TestGetCodeLang/C
|
|
||||||
--- PASS: TestGetCodeLang (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Go (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C++ (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Python (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/cmd (cached)
|
|
||||||
=== RUN TestGetModel
|
|
||||||
=== RUN TestGetModel/returns_flag_model_when_provided
|
|
||||||
=== RUN TestGetModel/returns_default_when_flag_empty
|
|
||||||
--- PASS: TestGetModel (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_flag_model_when_provided (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_default_when_flag_empty (0.00s)
|
|
||||||
=== RUN TestGetModelWithAlias
|
|
||||||
--- PASS: TestGetModelWithAlias (0.00s)
|
|
||||||
=== RUN TestGetCommandModel
|
|
||||||
=== RUN TestGetCommandModel/lint_
|
|
||||||
=== RUN TestGetCommandModel/lint_override
|
|
||||||
=== RUN TestGetCommandModel/other_
|
|
||||||
=== RUN TestGetCommandModel/unknown_
|
|
||||||
--- PASS: TestGetCommandModel (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_override (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/other_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/unknown_ (0.00s)
|
|
||||||
=== RUN TestLoad
|
|
||||||
--- PASS: TestLoad (0.00s)
|
|
||||||
=== RUN TestGetTemperature
|
|
||||||
--- PASS: TestGetTemperature (0.00s)
|
|
||||||
=== RUN TestGetTimeout
|
|
||||||
--- PASS: TestGetTimeout (0.00s)
|
|
||||||
=== RUN TestGetLogLevel
|
|
||||||
--- PASS: TestGetLogLevel (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/config (cached)
|
|
||||||
=== RUN TestGitError
|
|
||||||
--- PASS: TestGitError (0.00s)
|
|
||||||
=== RUN TestAPIError
|
|
||||||
=== RUN TestAPIError/with_status_code
|
|
||||||
=== RUN TestAPIError/without_status_code
|
|
||||||
--- PASS: TestAPIError (0.00s)
|
|
||||||
--- PASS: TestAPIError/with_status_code (0.00s)
|
|
||||||
--- PASS: TestAPIError/without_status_code (0.00s)
|
|
||||||
=== RUN TestFileError
|
|
||||||
--- PASS: TestFileError (0.00s)
|
|
||||||
=== RUN TestAPIErrorUnwrap
|
|
||||||
--- PASS: TestAPIErrorUnwrap (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/errors (cached)
|
|
||||||
=== RUN TestIsRepo
|
|
||||||
--- PASS: TestIsRepo (0.00s)
|
|
||||||
=== RUN TestRun
|
|
||||||
=== RUN TestRun/version_command_succeeds
|
|
||||||
=== RUN TestRun/invalid_command_fails
|
|
||||||
--- PASS: TestRun (0.01s)
|
|
||||||
--- PASS: TestRun/version_command_succeeds (0.00s)
|
|
||||||
--- PASS: TestRun/invalid_command_fails (0.01s)
|
|
||||||
=== RUN TestGitRunner
|
|
||||||
--- PASS: TestGitRunner (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/git (cached)
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_leading_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_multiple_languages
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_only_fence_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_empty_input
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_only_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_code_indentation
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_leading_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_multiple_languages (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_only_fence_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_empty_input (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_only_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_code_indentation (0.00s)
|
|
||||||
=== RUN TestCleanCodeResponse
|
|
||||||
=== RUN TestCleanCodeResponse/removes_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse/removes_language_tag
|
|
||||||
=== RUN TestCleanCodeResponse/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse/trims_whitespace
|
|
||||||
--- PASS: TestCleanCodeResponse (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_language_tag (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/trims_whitespace (0.00s)
|
|
||||||
=== RUN TestStreamSilent
|
|
||||||
--- PASS: TestStreamSilent (0.00s)
|
|
||||||
=== RUN TestStream
|
|
||||||
foobar
|
|
||||||
--- PASS: TestStream (0.00s)
|
|
||||||
=== RUN TestStreamWithTemp
|
|
||||||
response
|
|
||||||
--- PASS: TestStreamWithTemp (0.00s)
|
|
||||||
=== RUN TestStreamDoneSignal
|
|
||||||
--- PASS: TestStreamDoneSignal (0.00s)
|
|
||||||
=== RUN TestStreamEmptyResponse
|
|
||||||
--- PASS: TestStreamEmptyResponse (0.00s)
|
|
||||||
=== RUN TestNewClient
|
|
||||||
--- PASS: TestNewClient (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/grok (cached)
|
|
||||||
=== RUN TestDetectLanguage
|
|
||||||
=== RUN TestDetectLanguage/Go_file
|
|
||||||
=== RUN TestDetectLanguage/Python_file
|
|
||||||
=== RUN TestDetectLanguage/JavaScript_file
|
|
||||||
=== RUN TestDetectLanguage/JSX_file
|
|
||||||
=== RUN TestDetectLanguage/TypeScript_file
|
|
||||||
=== RUN TestDetectLanguage/TSX_file
|
|
||||||
=== RUN TestDetectLanguage/Rust_file
|
|
||||||
=== RUN TestDetectLanguage/Ruby_file
|
|
||||||
=== RUN TestDetectLanguage/Java_file
|
|
||||||
=== RUN TestDetectLanguage/C_file
|
|
||||||
=== RUN TestDetectLanguage/C++_file
|
|
||||||
=== RUN TestDetectLanguage/Header_file
|
|
||||||
=== RUN TestDetectLanguage/Shell_script
|
|
||||||
=== RUN TestDetectLanguage/Bash_script
|
|
||||||
=== RUN TestDetectLanguage/Unsupported_file
|
|
||||||
=== RUN TestDetectLanguage/No_extension
|
|
||||||
=== RUN TestDetectLanguage/Case_insensitive
|
|
||||||
--- PASS: TestDetectLanguage (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Go_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Python_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JavaScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TypeScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Rust_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Ruby_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Java_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C++_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Header_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Shell_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Bash_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Unsupported_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/No_extension (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Case_insensitive (0.00s)
|
|
||||||
=== RUN TestCheckLinterAvailable
|
|
||||||
=== RUN TestCheckLinterAvailable/go_command_should_be_available
|
|
||||||
linter_test.go:84: go should be available on system with Go installed: available=true
|
|
||||||
=== RUN TestCheckLinterAvailable/nonexistent_command
|
|
||||||
linter_test.go:84: nonexistent command should not be available: available=false
|
|
||||||
--- PASS: TestCheckLinterAvailable (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/go_command_should_be_available (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/nonexistent_command (0.00s)
|
|
||||||
=== RUN TestFindAvailableLinter
|
|
||||||
=== RUN TestFindAvailableLinter/Go_language_should_find_a_linter
|
|
||||||
=== RUN TestFindAvailableLinter/Language_with_no_available_linters
|
|
||||||
--- PASS: TestFindAvailableLinter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Go_language_should_find_a_linter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Language_with_no_available_linters (0.00s)
|
|
||||||
=== RUN TestRunLinter
|
|
||||||
=== RUN TestRunLinter/Run_go_vet_on_valid_file
|
|
||||||
linter_test.go:179: go vet result: ExitCode=0, HasIssues=false, Output=""
|
|
||||||
=== RUN TestRunLinter/Run_nonexistent_linter
|
|
||||||
--- PASS: TestRunLinter (0.07s)
|
|
||||||
--- PASS: TestRunLinter/Run_go_vet_on_valid_file (0.07s)
|
|
||||||
--- PASS: TestRunLinter/Run_nonexistent_linter (0.00s)
|
|
||||||
=== RUN TestLintFile
|
|
||||||
=== RUN TestLintFile/Lint_valid_Go_file
|
|
||||||
=== RUN TestLintFile/Lint_nonexistent_file
|
|
||||||
=== RUN TestLintFile/Lint_unsupported_file_type
|
|
||||||
--- PASS: TestLintFile (0.16s)
|
|
||||||
--- PASS: TestLintFile/Lint_valid_Go_file (0.16s)
|
|
||||||
--- PASS: TestLintFile/Lint_nonexistent_file (0.00s)
|
|
||||||
--- PASS: TestLintFile/Lint_unsupported_file_type (0.00s)
|
|
||||||
=== RUN TestGetSupportedLanguages
|
|
||||||
--- PASS: TestGetSupportedLanguages (0.00s)
|
|
||||||
=== RUN TestLanguageStructure
|
|
||||||
--- PASS: TestLanguageStructure (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/linter (cached)
|
|
||||||
=== RUN TestInit
|
|
||||||
=== RUN TestInit/default_level
|
|
||||||
=== RUN TestInit/debug_level
|
|
||||||
=== RUN TestInit/warn_level
|
|
||||||
=== RUN TestInit/error_level
|
|
||||||
=== RUN TestInit/invalid_level_defaults_to_info
|
|
||||||
--- PASS: TestInit (0.00s)
|
|
||||||
--- PASS: TestInit/default_level (0.00s)
|
|
||||||
--- PASS: TestInit/debug_level (0.00s)
|
|
||||||
--- PASS: TestInit/warn_level (0.00s)
|
|
||||||
--- PASS: TestInit/error_level (0.00s)
|
|
||||||
--- PASS: TestInit/invalid_level_defaults_to_info (0.00s)
|
|
||||||
=== RUN TestLogging
|
|
||||||
{"time":"2026-03-04T19:52:04.116795514Z","level":"DEBUG","msg":"test debug message","key":"value"}
|
|
||||||
{"time":"2026-03-04T19:52:04.116935804Z","level":"INFO","msg":"test info message","count":42}
|
|
||||||
{"time":"2026-03-04T19:52:04.116957313Z","level":"WARN","msg":"test warn message","enabled":true}
|
|
||||||
{"time":"2026-03-04T19:52:04.116977684Z","level":"ERROR","msg":"test error message","error":"something went wrong"}
|
|
||||||
--- PASS: TestLogging (0.00s)
|
|
||||||
=== RUN TestSetLevel
|
|
||||||
--- PASS: TestSetLevel (0.00s)
|
|
||||||
=== RUN TestWith
|
|
||||||
--- PASS: TestWith (0.00s)
|
|
||||||
=== RUN TestWithContext
|
|
||||||
=== RUN TestWithContext/without_init
|
|
||||||
=== RUN TestWithContext/with_init
|
|
||||||
--- PASS: TestWithContext (0.00s)
|
|
||||||
--- PASS: TestWithContext/without_init (0.00s)
|
|
||||||
--- PASS: TestWithContext/with_init (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/logger (cached)
|
|
||||||
=== RUN TestExtractCodeBlocks
|
|
||||||
=== PAUSE TestExtractCodeBlocks
|
|
||||||
=== CONT TestExtractCodeBlocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Single_block
|
|
||||||
=== RUN TestExtractCodeBlocks/Multiple_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/No_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Incomplete_block
|
|
||||||
--- PASS: TestExtractCodeBlocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Single_block (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Multiple_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/No_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Incomplete_block (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/recipe (cached)
|
|
||||||
=== RUN TestVersionInfo
|
|
||||||
=== PAUSE TestVersionInfo
|
|
||||||
=== CONT TestVersionInfo
|
|
||||||
=== RUN TestVersionInfo/Version
|
|
||||||
=== PAUSE TestVersionInfo/Version
|
|
||||||
=== RUN TestVersionInfo/Commit
|
|
||||||
=== PAUSE TestVersionInfo/Commit
|
|
||||||
=== RUN TestVersionInfo/BuildDate
|
|
||||||
=== PAUSE TestVersionInfo/BuildDate
|
|
||||||
=== CONT TestVersionInfo/Version
|
|
||||||
=== CONT TestVersionInfo/Commit
|
|
||||||
=== CONT TestVersionInfo/BuildDate
|
|
||||||
--- PASS: TestVersionInfo (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Version (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Commit (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/BuildDate (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/version (cached)
|
|
||||||
@ -1,644 +0,0 @@
|
|||||||
? gmgauthier.com/grokkit [no test files]
|
|
||||||
=== RUN TestAgentCommand_PlanGeneration
|
|
||||||
agent_test.go:8: Agent plan generation test placeholder — ready for expansion
|
|
||||||
--- PASS: TestAgentCommand_PlanGeneration (0.00s)
|
|
||||||
=== RUN TestAgentCommand_CleanCodeResponseIntegration
|
|
||||||
--- PASS: TestAgentCommand_CleanCodeResponseIntegration (0.00s)
|
|
||||||
=== RUN TestBuildChangelogMessages
|
|
||||||
=== PAUSE TestBuildChangelogMessages
|
|
||||||
=== RUN TestBuildFullChangelog
|
|
||||||
=== PAUSE TestBuildFullChangelog
|
|
||||||
=== RUN TestChangelogCmd_Flags
|
|
||||||
=== PAUSE TestChangelogCmd_Flags
|
|
||||||
=== RUN TestGetChatHistoryFile
|
|
||||||
--- PASS: TestGetChatHistoryFile (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_NoFile
|
|
||||||
--- PASS: TestLoadChatHistory_NoFile (0.00s)
|
|
||||||
=== RUN TestSaveAndLoadChatHistory
|
|
||||||
--- PASS: TestSaveAndLoadChatHistory (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_InvalidJSON
|
|
||||||
--- PASS: TestLoadChatHistory_InvalidJSON (0.00s)
|
|
||||||
=== RUN TestBuildCommitMessages
|
|
||||||
=== RUN TestBuildCommitMessages/normal_diff
|
|
||||||
=== RUN TestBuildCommitMessages/empty_diff
|
|
||||||
--- PASS: TestBuildCommitMessages (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/normal_diff (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestCompletionCmd
|
|
||||||
=== RUN TestCompletionCmd/bash
|
|
||||||
=== RUN TestCompletionCmd/zsh
|
|
||||||
=== RUN TestCompletionCmd/fish
|
|
||||||
=== RUN TestCompletionCmd/powershell
|
|
||||||
--- PASS: TestCompletionCmd (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/bash (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/zsh (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/fish (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/powershell (0.00s)
|
|
||||||
=== RUN TestBuildDocsMessages
|
|
||||||
=== RUN TestBuildDocsMessages/Go
|
|
||||||
=== RUN TestBuildDocsMessages/Python
|
|
||||||
=== RUN TestBuildDocsMessages/C
|
|
||||||
=== RUN TestBuildDocsMessages/C++
|
|
||||||
=== RUN TestBuildDocsMessages/JavaScript
|
|
||||||
=== RUN TestBuildDocsMessages/TypeScript
|
|
||||||
=== RUN TestBuildDocsMessages/Rust
|
|
||||||
=== RUN TestBuildDocsMessages/Ruby
|
|
||||||
=== RUN TestBuildDocsMessages/Java
|
|
||||||
=== RUN TestBuildDocsMessages/Shell
|
|
||||||
--- PASS: TestBuildDocsMessages (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Go (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Python (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C++ (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/JavaScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/TypeScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Rust (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Ruby (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Java (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Shell (0.00s)
|
|
||||||
=== RUN TestDocStyle
|
|
||||||
=== RUN TestDocStyle/go
|
|
||||||
=== RUN TestDocStyle/Go
|
|
||||||
=== RUN TestDocStyle/python
|
|
||||||
=== RUN TestDocStyle/c
|
|
||||||
=== RUN TestDocStyle/c++
|
|
||||||
=== RUN TestDocStyle/javascript
|
|
||||||
=== RUN TestDocStyle/typescript
|
|
||||||
=== RUN TestDocStyle/rust
|
|
||||||
=== RUN TestDocStyle/ruby
|
|
||||||
=== RUN TestDocStyle/java
|
|
||||||
=== RUN TestDocStyle/shell
|
|
||||||
=== RUN TestDocStyle/bash
|
|
||||||
=== RUN TestDocStyle/unknown
|
|
||||||
--- PASS: TestDocStyle (0.00s)
|
|
||||||
--- PASS: TestDocStyle/go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/Go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/python (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c++ (0.00s)
|
|
||||||
--- PASS: TestDocStyle/javascript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/typescript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/rust (0.00s)
|
|
||||||
--- PASS: TestDocStyle/ruby (0.00s)
|
|
||||||
--- PASS: TestDocStyle/java (0.00s)
|
|
||||||
--- PASS: TestDocStyle/shell (0.00s)
|
|
||||||
--- PASS: TestDocStyle/bash (0.00s)
|
|
||||||
--- PASS: TestDocStyle/unknown (0.00s)
|
|
||||||
=== RUN TestRemoveLastModifiedComments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_last_modified_comment
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_multiple_last_modified_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_code_without_last_modified
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_empty_string
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_other_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_line_with_only_last_modified
|
|
||||||
--- PASS: TestRemoveLastModifiedComments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_last_modified_comment (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_multiple_last_modified_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_code_without_last_modified (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_empty_string (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_other_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_line_with_only_last_modified (0.00s)
|
|
||||||
=== RUN TestEditCommand
|
|
||||||
--- PASS: TestEditCommand (0.68s)
|
|
||||||
=== RUN TestBuildHistoryMessages
|
|
||||||
=== RUN TestBuildHistoryMessages/with_recent_commits
|
|
||||||
=== RUN TestBuildHistoryMessages/empty_log
|
|
||||||
--- PASS: TestBuildHistoryMessages (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/with_recent_commits (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/empty_log (0.00s)
|
|
||||||
=== RUN TestBuildLintFixMessages
|
|
||||||
=== RUN TestBuildLintFixMessages/go_file_with_issues
|
|
||||||
=== RUN TestBuildLintFixMessages/python_file_with_issues
|
|
||||||
--- PASS: TestBuildLintFixMessages (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/go_file_with_issues (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/python_file_with_issues (0.00s)
|
|
||||||
=== RUN TestBuildPRDescribeMessages
|
|
||||||
=== RUN TestBuildPRDescribeMessages/branch_with_changes
|
|
||||||
=== RUN TestBuildPRDescribeMessages/empty_diff
|
|
||||||
--- PASS: TestBuildPRDescribeMessages (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/branch_with_changes (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestBuildReviewMessages
|
|
||||||
=== RUN TestBuildReviewMessages/with_status_and_diff
|
|
||||||
=== RUN TestBuildReviewMessages/empty_diff
|
|
||||||
--- PASS: TestBuildReviewMessages (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/with_status_and_diff (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestExecute
|
|
||||||
=== RUN TestExecute/version
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/help
|
|
||||||
A fast, native Go CLI for Grok. Chat, edit files, and supercharge your git workflow.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
grokkit [command]
|
|
||||||
|
|
||||||
Available Commands:
|
|
||||||
agent Multi-file agent — Grok intelligently edits multiple files with preview
|
|
||||||
changelog Generate CHANGELOG.md section from git history for Gitea releases
|
|
||||||
chat Simple interactive CLI chat with Grok (full history + streaming)
|
|
||||||
commit Generate message and commit staged changes
|
|
||||||
commit-msg Generate conventional commit message from staged changes
|
|
||||||
completion Generate shell completion script
|
|
||||||
docs Generate documentation comments for source files
|
|
||||||
edit Edit a file in-place with Grok (safe preview)
|
|
||||||
help Help about any command
|
|
||||||
history Summarize recent git history
|
|
||||||
lint Lint a file and optionally apply AI-suggested fixes
|
|
||||||
pr-describe Generate full PR description from current branch
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
recipe Run a recipe (transactional sous-chef mode)
|
|
||||||
review Review the current repository or directory
|
|
||||||
scaffold Scaffold a new file with Grok (safe preview + confirmation)
|
|
||||||
testgen Generate AI unit tests for files (Go/Python/C/C++, preview/apply)
|
|
||||||
version Print the version information
|
|
||||||
|
|
||||||
Flags:
|
|
||||||
--debug Enable debug logging (logs to stderr and file)
|
|
||||||
-h, --help help for grokkit
|
|
||||||
-m, --model string Grok model to use (overrides config)
|
|
||||||
-v, --verbose Enable verbose logging
|
|
||||||
|
|
||||||
Use "grokkit [command] --help" for more information about a command.
|
|
||||||
=== RUN TestExecute/debug_flag
|
|
||||||
{"time":"2026-03-06T21:37:40.647542566Z","level":"INFO","msg":"grokkit starting","command":"version","log_level":"debug"}
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/verbose_flag
|
|
||||||
grokkit version dev (commit )\n--- PASS: TestExecute (0.00s)
|
|
||||||
--- PASS: TestExecute/version (0.00s)
|
|
||||||
--- PASS: TestExecute/help (0.00s)
|
|
||||||
--- PASS: TestExecute/debug_flag (0.00s)
|
|
||||||
--- PASS: TestExecute/verbose_flag (0.00s)
|
|
||||||
=== RUN TestRunHistory
|
|
||||||
=== RUN TestRunHistory/calls_AI_with_log_output
|
|
||||||
Summarizing recent commits...
|
|
||||||
=== RUN TestRunHistory/no_commits_—_skips_AI
|
|
||||||
No commits found.
|
|
||||||
=== RUN TestRunHistory/git_error_—_skips_AI
|
|
||||||
Failed to get git log: not a git repo
|
|
||||||
--- PASS: TestRunHistory (0.00s)
|
|
||||||
--- PASS: TestRunHistory/calls_AI_with_log_output (0.00s)
|
|
||||||
--- PASS: TestRunHistory/no_commits_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunHistory/git_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunReview
|
|
||||||
=== RUN TestRunReview/reviews_with_diff_and_status
|
|
||||||
Grok is reviewing the repo...
|
|
||||||
=== RUN TestRunReview/git_diff_error_—_skips_AI
|
|
||||||
Failed to get git diff: git error
|
|
||||||
=== RUN TestRunReview/git_status_error_—_skips_AI
|
|
||||||
Failed to get git status: git error
|
|
||||||
--- PASS: TestRunReview (0.00s)
|
|
||||||
--- PASS: TestRunReview/reviews_with_diff_and_status (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_diff_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_status_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunCommit
|
|
||||||
=== RUN TestRunCommit/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommit/git_error_—_skips_AI
|
|
||||||
Failed to get staged changes: not a git repo
|
|
||||||
=== RUN TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin
|
|
||||||
Generating commit message...
|
|
||||||
|
|
||||||
Proposed commit message:
|
|
||||||
feat(cmd): add thing
|
|
||||||
Commit with this message? (y/n):
|
|
||||||
Aborted.
|
|
||||||
--- PASS: TestRunCommit (0.00s)
|
|
||||||
--- PASS: TestRunCommit/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/git_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin (0.00s)
|
|
||||||
=== RUN TestRunCommitMsg
|
|
||||||
=== RUN TestRunCommitMsg/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message
|
|
||||||
Generating commit message...
|
|
||||||
--- PASS: TestRunCommitMsg (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message (0.00s)
|
|
||||||
=== RUN TestRunPRDescribe
|
|
||||||
=== RUN TestRunPRDescribe/no_changes_on_branch_—_skips_AI
|
|
||||||
No changes on this branch compared to master/origin/master.
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/uses_custom_base_branch
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/defaults_to_master
|
|
||||||
Writing PR description...
|
|
||||||
--- PASS: TestRunPRDescribe (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/no_changes_on_branch_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/uses_custom_base_branch (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/defaults_to_master (0.00s)
|
|
||||||
=== RUN TestRunLintFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestRunLintFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestProcessDocsFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileUnsupportedLanguage
|
|
||||||
⚠️ Skipping /tmp/test2101107302.xyz: unsupported file type: .xyz
|
|
||||||
--- PASS: TestProcessDocsFileUnsupportedLanguage (0.00s)
|
|
||||||
=== RUN TestProcessDocsFilePreviewAndCancel
|
|
||||||
📝 Generating Go docs for: /tmp/test533748323.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Foo does nothing.
|
|
||||||
func Foo() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Apply documentation to /tmp/test533748323.go? (y/N):
|
|
||||||
❌ Cancelled. No changes made to: /tmp/test533748323.go
|
|
||||||
--- PASS: TestProcessDocsFilePreviewAndCancel (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileAutoApply
|
|
||||||
📝 Generating Go docs for: /tmp/test2461183796.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Bar does nothing.
|
|
||||||
func Bar() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
✅ Documentation applied: /tmp/test2461183796.go
|
|
||||||
--- PASS: TestProcessDocsFileAutoApply (0.00s)
|
|
||||||
=== RUN TestRunDocs
|
|
||||||
❌ File not found: /nonexistent/file.go
|
|
||||||
--- PASS: TestRunDocs (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd
|
|
||||||
scaffold_test.go:15: ✓ Fast scaffold unit test (no Grok API call)
|
|
||||||
--- PASS: TestScaffoldCmd (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd_Live
|
|
||||||
scaffold_test.go:22: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestScaffoldCmd_Live -short -v
|
|
||||||
--- SKIP: TestScaffoldCmd_Live (0.00s)
|
|
||||||
=== RUN TestTestgenCmd
|
|
||||||
=== PAUSE TestTestgenCmd
|
|
||||||
=== RUN TestTestgenCmd_Live
|
|
||||||
testgen_test.go:17: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestTestgenCmd_Live -short -v
|
|
||||||
--- SKIP: TestTestgenCmd_Live (0.00s)
|
|
||||||
=== RUN TestRemoveSourceComments
|
|
||||||
=== PAUSE TestRemoveSourceComments
|
|
||||||
=== RUN TestGetTestPrompt
|
|
||||||
=== PAUSE TestGetTestPrompt
|
|
||||||
=== RUN TestGetTestFilePath
|
|
||||||
=== PAUSE TestGetTestFilePath
|
|
||||||
=== RUN TestGetCodeLang
|
|
||||||
=== PAUSE TestGetCodeLang
|
|
||||||
=== CONT TestBuildChangelogMessages
|
|
||||||
=== CONT TestRemoveSourceComments
|
|
||||||
--- PASS: TestBuildChangelogMessages (0.00s)
|
|
||||||
=== CONT TestGetCodeLang
|
|
||||||
=== RUN TestRemoveSourceComments/no_comments
|
|
||||||
=== RUN TestGetCodeLang/Go
|
|
||||||
=== PAUSE TestRemoveSourceComments/no_comments
|
|
||||||
=== CONT TestChangelogCmd_Flags
|
|
||||||
=== RUN TestRemoveSourceComments/last_modified
|
|
||||||
=== CONT TestGetTestFilePath
|
|
||||||
=== PAUSE TestRemoveSourceComments/last_modified
|
|
||||||
=== RUN TestGetTestFilePath/foo.go_Go
|
|
||||||
=== RUN TestRemoveSourceComments/generated_by
|
|
||||||
=== PAUSE TestRemoveSourceComments/generated_by
|
|
||||||
=== CONT TestTestgenCmd
|
|
||||||
=== RUN TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== PAUSE TestGetTestFilePath/foo.go_Go
|
|
||||||
=== PAUSE TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== RUN TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
--- PASS: TestChangelogCmd_Flags (0.00s)
|
|
||||||
=== RUN TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== PAUSE TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== PAUSE TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== RUN TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestRemoveSourceComments/python_testgen
|
|
||||||
=== CONT TestGetTestPrompt
|
|
||||||
=== PAUSE TestRemoveSourceComments/python_testgen
|
|
||||||
=== PAUSE TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestGetTestPrompt/Go
|
|
||||||
=== RUN TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== RUN TestRemoveSourceComments/c_testgen
|
|
||||||
=== PAUSE TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== PAUSE TestGetTestPrompt/Go
|
|
||||||
=== CONT TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== RUN TestGetTestPrompt/Python
|
|
||||||
=== PAUSE TestGetTestPrompt/Python
|
|
||||||
=== RUN TestGetTestPrompt/C
|
|
||||||
=== CONT TestGetTestFilePath/foo.go_Go
|
|
||||||
=== PAUSE TestGetTestPrompt/C
|
|
||||||
=== NAME TestTestgenCmd
|
|
||||||
testgen_test.go:12: ✓ Fast testgen unit test (no Grok API call)
|
|
||||||
=== RUN TestGetTestPrompt/C++
|
|
||||||
--- PASS: TestTestgenCmd (0.00s)
|
|
||||||
=== PAUSE TestGetTestPrompt/C++
|
|
||||||
=== CONT TestBuildFullChangelog
|
|
||||||
=== RUN TestGetTestPrompt/Invalid
|
|
||||||
=== PAUSE TestGetTestPrompt/Invalid
|
|
||||||
=== CONT TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== CONT TestGetTestPrompt/Invalid
|
|
||||||
=== RUN TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== CONT TestGetTestPrompt/C++
|
|
||||||
=== CONT TestGetTestPrompt/Python
|
|
||||||
=== PAUSE TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== PAUSE TestGetCodeLang/Go
|
|
||||||
=== RUN TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== RUN TestGetCodeLang/Python
|
|
||||||
=== PAUSE TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== PAUSE TestGetCodeLang/Python
|
|
||||||
=== CONT TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== RUN TestGetCodeLang/C
|
|
||||||
=== PAUSE TestGetCodeLang/C
|
|
||||||
=== RUN TestGetCodeLang/C++
|
|
||||||
=== PAUSE TestGetCodeLang/C++
|
|
||||||
=== CONT TestGetCodeLang/Go
|
|
||||||
=== CONT TestGetCodeLang/C++
|
|
||||||
=== CONT TestGetTestFilePath/bar.c_C
|
|
||||||
=== CONT TestGetCodeLang/C
|
|
||||||
=== CONT TestGetCodeLang/Python
|
|
||||||
=== PAUSE TestRemoveSourceComments/c_testgen
|
|
||||||
--- PASS: TestGetTestFilePath (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/dir/foo.py_Python (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/foo.go_Go (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/baz.cpp_C++ (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/bar.c_C (0.00s)
|
|
||||||
=== CONT TestGetTestPrompt/Go
|
|
||||||
=== CONT TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
--- PASS: TestGetCodeLang (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Go (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C++ (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Python (0.00s)
|
|
||||||
=== CONT TestRemoveSourceComments/last_modified
|
|
||||||
=== CONT TestRemoveSourceComments/c_testgen
|
|
||||||
=== CONT TestGetTestPrompt/C
|
|
||||||
=== CONT TestRemoveSourceComments/python_testgen
|
|
||||||
=== CONT TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
--- PASS: TestGetTestPrompt (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Invalid (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C++ (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Python (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Go (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C (0.00s)
|
|
||||||
=== CONT TestRemoveSourceComments/no_comments
|
|
||||||
=== CONT TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== CONT TestRemoveSourceComments/generated_by
|
|
||||||
--- PASS: TestRemoveSourceComments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/partial_match_no_remove (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/last_modified (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/python_testgen (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/c_testgen (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/no_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/multiple_removable_lines (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/generated_by (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/prepends_to_existing_file (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/creates_new_file_with_header (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/cmd (cached)
|
|
||||||
=== RUN TestGetModel
|
|
||||||
=== RUN TestGetModel/returns_flag_model_when_provided
|
|
||||||
=== RUN TestGetModel/returns_default_when_flag_empty
|
|
||||||
--- PASS: TestGetModel (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_flag_model_when_provided (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_default_when_flag_empty (0.00s)
|
|
||||||
=== RUN TestGetModelWithAlias
|
|
||||||
--- PASS: TestGetModelWithAlias (0.00s)
|
|
||||||
=== RUN TestGetCommandModel
|
|
||||||
=== RUN TestGetCommandModel/lint_
|
|
||||||
=== RUN TestGetCommandModel/lint_override
|
|
||||||
=== RUN TestGetCommandModel/other_
|
|
||||||
=== RUN TestGetCommandModel/unknown_
|
|
||||||
--- PASS: TestGetCommandModel (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_override (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/other_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/unknown_ (0.00s)
|
|
||||||
=== RUN TestLoad
|
|
||||||
--- PASS: TestLoad (0.00s)
|
|
||||||
=== RUN TestGetTemperature
|
|
||||||
--- PASS: TestGetTemperature (0.00s)
|
|
||||||
=== RUN TestGetTimeout
|
|
||||||
--- PASS: TestGetTimeout (0.00s)
|
|
||||||
=== RUN TestGetLogLevel
|
|
||||||
--- PASS: TestGetLogLevel (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/config (cached)
|
|
||||||
=== RUN TestGitError
|
|
||||||
--- PASS: TestGitError (0.00s)
|
|
||||||
=== RUN TestAPIError
|
|
||||||
=== RUN TestAPIError/with_status_code
|
|
||||||
=== RUN TestAPIError/without_status_code
|
|
||||||
--- PASS: TestAPIError (0.00s)
|
|
||||||
--- PASS: TestAPIError/with_status_code (0.00s)
|
|
||||||
--- PASS: TestAPIError/without_status_code (0.00s)
|
|
||||||
=== RUN TestFileError
|
|
||||||
--- PASS: TestFileError (0.00s)
|
|
||||||
=== RUN TestAPIErrorUnwrap
|
|
||||||
--- PASS: TestAPIErrorUnwrap (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/errors (cached)
|
|
||||||
=== RUN TestIsRepo
|
|
||||||
--- PASS: TestIsRepo (0.00s)
|
|
||||||
=== RUN TestRun
|
|
||||||
=== RUN TestRun/version_command_succeeds
|
|
||||||
=== RUN TestRun/invalid_command_fails
|
|
||||||
--- PASS: TestRun (0.01s)
|
|
||||||
--- PASS: TestRun/version_command_succeeds (0.00s)
|
|
||||||
--- PASS: TestRun/invalid_command_fails (0.01s)
|
|
||||||
=== RUN TestGitRunner
|
|
||||||
--- PASS: TestGitRunner (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/git (cached)
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_leading_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_multiple_languages
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_only_fence_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_empty_input
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_only_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_code_indentation
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_leading_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_multiple_languages (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_only_fence_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_empty_input (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_only_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_code_indentation (0.00s)
|
|
||||||
=== RUN TestCleanCodeResponse
|
|
||||||
=== RUN TestCleanCodeResponse/removes_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse/removes_language_tag
|
|
||||||
=== RUN TestCleanCodeResponse/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse/trims_whitespace
|
|
||||||
--- PASS: TestCleanCodeResponse (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_language_tag (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/trims_whitespace (0.00s)
|
|
||||||
=== RUN TestStreamSilent
|
|
||||||
--- PASS: TestStreamSilent (0.00s)
|
|
||||||
=== RUN TestStream
|
|
||||||
foobar
|
|
||||||
--- PASS: TestStream (0.00s)
|
|
||||||
=== RUN TestStreamWithTemp
|
|
||||||
response
|
|
||||||
--- PASS: TestStreamWithTemp (0.00s)
|
|
||||||
=== RUN TestStreamDoneSignal
|
|
||||||
--- PASS: TestStreamDoneSignal (0.00s)
|
|
||||||
=== RUN TestStreamEmptyResponse
|
|
||||||
--- PASS: TestStreamEmptyResponse (0.00s)
|
|
||||||
=== RUN TestNewClient
|
|
||||||
--- PASS: TestNewClient (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/grok (cached)
|
|
||||||
=== RUN TestDetectLanguage
|
|
||||||
=== RUN TestDetectLanguage/Go_file
|
|
||||||
=== RUN TestDetectLanguage/Python_file
|
|
||||||
=== RUN TestDetectLanguage/JavaScript_file
|
|
||||||
=== RUN TestDetectLanguage/JSX_file
|
|
||||||
=== RUN TestDetectLanguage/TypeScript_file
|
|
||||||
=== RUN TestDetectLanguage/TSX_file
|
|
||||||
=== RUN TestDetectLanguage/Rust_file
|
|
||||||
=== RUN TestDetectLanguage/Ruby_file
|
|
||||||
=== RUN TestDetectLanguage/Java_file
|
|
||||||
=== RUN TestDetectLanguage/C_file
|
|
||||||
=== RUN TestDetectLanguage/C++_file
|
|
||||||
=== RUN TestDetectLanguage/Header_file
|
|
||||||
=== RUN TestDetectLanguage/Shell_script
|
|
||||||
=== RUN TestDetectLanguage/Bash_script
|
|
||||||
=== RUN TestDetectLanguage/Unsupported_file
|
|
||||||
=== RUN TestDetectLanguage/No_extension
|
|
||||||
=== RUN TestDetectLanguage/Case_insensitive
|
|
||||||
--- PASS: TestDetectLanguage (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Go_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Python_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JavaScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TypeScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Rust_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Ruby_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Java_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C++_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Header_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Shell_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Bash_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Unsupported_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/No_extension (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Case_insensitive (0.00s)
|
|
||||||
=== RUN TestCheckLinterAvailable
|
|
||||||
=== RUN TestCheckLinterAvailable/go_command_should_be_available
|
|
||||||
linter_test.go:84: go should be available on system with Go installed: available=true
|
|
||||||
=== RUN TestCheckLinterAvailable/nonexistent_command
|
|
||||||
linter_test.go:84: nonexistent command should not be available: available=false
|
|
||||||
--- PASS: TestCheckLinterAvailable (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/go_command_should_be_available (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/nonexistent_command (0.00s)
|
|
||||||
=== RUN TestFindAvailableLinter
|
|
||||||
=== RUN TestFindAvailableLinter/Go_language_should_find_a_linter
|
|
||||||
=== RUN TestFindAvailableLinter/Language_with_no_available_linters
|
|
||||||
--- PASS: TestFindAvailableLinter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Go_language_should_find_a_linter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Language_with_no_available_linters (0.00s)
|
|
||||||
=== RUN TestRunLinter
|
|
||||||
=== RUN TestRunLinter/Run_go_vet_on_valid_file
|
|
||||||
linter_test.go:179: go vet result: ExitCode=0, HasIssues=false, Output=""
|
|
||||||
=== RUN TestRunLinter/Run_nonexistent_linter
|
|
||||||
--- PASS: TestRunLinter (0.09s)
|
|
||||||
--- PASS: TestRunLinter/Run_go_vet_on_valid_file (0.09s)
|
|
||||||
--- PASS: TestRunLinter/Run_nonexistent_linter (0.00s)
|
|
||||||
=== RUN TestLintFile
|
|
||||||
=== RUN TestLintFile/Lint_valid_Go_file
|
|
||||||
=== RUN TestLintFile/Lint_nonexistent_file
|
|
||||||
=== RUN TestLintFile/Lint_unsupported_file_type
|
|
||||||
--- PASS: TestLintFile (0.23s)
|
|
||||||
--- PASS: TestLintFile/Lint_valid_Go_file (0.23s)
|
|
||||||
--- PASS: TestLintFile/Lint_nonexistent_file (0.00s)
|
|
||||||
--- PASS: TestLintFile/Lint_unsupported_file_type (0.00s)
|
|
||||||
=== RUN TestGetSupportedLanguages
|
|
||||||
--- PASS: TestGetSupportedLanguages (0.00s)
|
|
||||||
=== RUN TestLanguageStructure
|
|
||||||
--- PASS: TestLanguageStructure (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/linter (cached)
|
|
||||||
=== RUN TestInit
|
|
||||||
=== RUN TestInit/default_level
|
|
||||||
=== RUN TestInit/debug_level
|
|
||||||
=== RUN TestInit/warn_level
|
|
||||||
=== RUN TestInit/error_level
|
|
||||||
=== RUN TestInit/invalid_level_defaults_to_info
|
|
||||||
--- PASS: TestInit (0.00s)
|
|
||||||
--- PASS: TestInit/default_level (0.00s)
|
|
||||||
--- PASS: TestInit/debug_level (0.00s)
|
|
||||||
--- PASS: TestInit/warn_level (0.00s)
|
|
||||||
--- PASS: TestInit/error_level (0.00s)
|
|
||||||
--- PASS: TestInit/invalid_level_defaults_to_info (0.00s)
|
|
||||||
=== RUN TestLogging
|
|
||||||
{"time":"2026-03-06T21:37:18.86971947Z","level":"DEBUG","msg":"test debug message","key":"value"}
|
|
||||||
{"time":"2026-03-06T21:37:18.869798249Z","level":"INFO","msg":"test info message","count":42}
|
|
||||||
{"time":"2026-03-06T21:37:18.869804305Z","level":"WARN","msg":"test warn message","enabled":true}
|
|
||||||
{"time":"2026-03-06T21:37:18.869808331Z","level":"ERROR","msg":"test error message","error":"something went wrong"}
|
|
||||||
--- PASS: TestLogging (0.00s)
|
|
||||||
=== RUN TestSetLevel
|
|
||||||
--- PASS: TestSetLevel (0.00s)
|
|
||||||
=== RUN TestWith
|
|
||||||
--- PASS: TestWith (0.00s)
|
|
||||||
=== RUN TestWithContext
|
|
||||||
=== RUN TestWithContext/without_init
|
|
||||||
=== RUN TestWithContext/with_init
|
|
||||||
--- PASS: TestWithContext (0.00s)
|
|
||||||
--- PASS: TestWithContext/without_init (0.00s)
|
|
||||||
--- PASS: TestWithContext/with_init (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/logger (cached)
|
|
||||||
=== RUN TestExtractCodeBlocks
|
|
||||||
=== PAUSE TestExtractCodeBlocks
|
|
||||||
=== CONT TestExtractCodeBlocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Single_block
|
|
||||||
=== RUN TestExtractCodeBlocks/Multiple_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/No_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Incomplete_block
|
|
||||||
--- PASS: TestExtractCodeBlocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Single_block (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Multiple_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/No_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Incomplete_block (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/recipe (cached)
|
|
||||||
=== RUN TestVersionInfo
|
|
||||||
=== PAUSE TestVersionInfo
|
|
||||||
=== CONT TestVersionInfo
|
|
||||||
=== RUN TestVersionInfo/Version
|
|
||||||
=== PAUSE TestVersionInfo/Version
|
|
||||||
=== RUN TestVersionInfo/Commit
|
|
||||||
=== PAUSE TestVersionInfo/Commit
|
|
||||||
=== RUN TestVersionInfo/BuildDate
|
|
||||||
=== PAUSE TestVersionInfo/BuildDate
|
|
||||||
=== CONT TestVersionInfo/Version
|
|
||||||
=== CONT TestVersionInfo/BuildDate
|
|
||||||
=== CONT TestVersionInfo/Commit
|
|
||||||
--- PASS: TestVersionInfo (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Version (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/BuildDate (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Commit (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/version (cached)
|
|
||||||
@ -1,644 +0,0 @@
|
|||||||
? gmgauthier.com/grokkit [no test files]
|
|
||||||
=== RUN TestAgentCommand_PlanGeneration
|
|
||||||
agent_test.go:8: Agent plan generation test placeholder — ready for expansion
|
|
||||||
--- PASS: TestAgentCommand_PlanGeneration (0.00s)
|
|
||||||
=== RUN TestAgentCommand_CleanCodeResponseIntegration
|
|
||||||
--- PASS: TestAgentCommand_CleanCodeResponseIntegration (0.00s)
|
|
||||||
=== RUN TestBuildChangelogMessages
|
|
||||||
=== PAUSE TestBuildChangelogMessages
|
|
||||||
=== RUN TestBuildFullChangelog
|
|
||||||
=== PAUSE TestBuildFullChangelog
|
|
||||||
=== RUN TestChangelogCmd_Flags
|
|
||||||
=== PAUSE TestChangelogCmd_Flags
|
|
||||||
=== RUN TestGetChatHistoryFile
|
|
||||||
--- PASS: TestGetChatHistoryFile (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_NoFile
|
|
||||||
--- PASS: TestLoadChatHistory_NoFile (0.00s)
|
|
||||||
=== RUN TestSaveAndLoadChatHistory
|
|
||||||
--- PASS: TestSaveAndLoadChatHistory (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_InvalidJSON
|
|
||||||
--- PASS: TestLoadChatHistory_InvalidJSON (0.00s)
|
|
||||||
=== RUN TestBuildCommitMessages
|
|
||||||
=== RUN TestBuildCommitMessages/normal_diff
|
|
||||||
=== RUN TestBuildCommitMessages/empty_diff
|
|
||||||
--- PASS: TestBuildCommitMessages (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/normal_diff (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestCompletionCmd
|
|
||||||
=== RUN TestCompletionCmd/bash
|
|
||||||
=== RUN TestCompletionCmd/zsh
|
|
||||||
=== RUN TestCompletionCmd/fish
|
|
||||||
=== RUN TestCompletionCmd/powershell
|
|
||||||
--- PASS: TestCompletionCmd (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/bash (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/zsh (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/fish (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/powershell (0.00s)
|
|
||||||
=== RUN TestBuildDocsMessages
|
|
||||||
=== RUN TestBuildDocsMessages/Go
|
|
||||||
=== RUN TestBuildDocsMessages/Python
|
|
||||||
=== RUN TestBuildDocsMessages/C
|
|
||||||
=== RUN TestBuildDocsMessages/C++
|
|
||||||
=== RUN TestBuildDocsMessages/JavaScript
|
|
||||||
=== RUN TestBuildDocsMessages/TypeScript
|
|
||||||
=== RUN TestBuildDocsMessages/Rust
|
|
||||||
=== RUN TestBuildDocsMessages/Ruby
|
|
||||||
=== RUN TestBuildDocsMessages/Java
|
|
||||||
=== RUN TestBuildDocsMessages/Shell
|
|
||||||
--- PASS: TestBuildDocsMessages (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Go (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Python (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C++ (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/JavaScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/TypeScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Rust (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Ruby (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Java (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Shell (0.00s)
|
|
||||||
=== RUN TestDocStyle
|
|
||||||
=== RUN TestDocStyle/go
|
|
||||||
=== RUN TestDocStyle/Go
|
|
||||||
=== RUN TestDocStyle/python
|
|
||||||
=== RUN TestDocStyle/c
|
|
||||||
=== RUN TestDocStyle/c++
|
|
||||||
=== RUN TestDocStyle/javascript
|
|
||||||
=== RUN TestDocStyle/typescript
|
|
||||||
=== RUN TestDocStyle/rust
|
|
||||||
=== RUN TestDocStyle/ruby
|
|
||||||
=== RUN TestDocStyle/java
|
|
||||||
=== RUN TestDocStyle/shell
|
|
||||||
=== RUN TestDocStyle/bash
|
|
||||||
=== RUN TestDocStyle/unknown
|
|
||||||
--- PASS: TestDocStyle (0.00s)
|
|
||||||
--- PASS: TestDocStyle/go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/Go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/python (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c++ (0.00s)
|
|
||||||
--- PASS: TestDocStyle/javascript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/typescript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/rust (0.00s)
|
|
||||||
--- PASS: TestDocStyle/ruby (0.00s)
|
|
||||||
--- PASS: TestDocStyle/java (0.00s)
|
|
||||||
--- PASS: TestDocStyle/shell (0.00s)
|
|
||||||
--- PASS: TestDocStyle/bash (0.00s)
|
|
||||||
--- PASS: TestDocStyle/unknown (0.00s)
|
|
||||||
=== RUN TestRemoveLastModifiedComments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_last_modified_comment
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_multiple_last_modified_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_code_without_last_modified
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_empty_string
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_other_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_line_with_only_last_modified
|
|
||||||
--- PASS: TestRemoveLastModifiedComments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_last_modified_comment (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_multiple_last_modified_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_code_without_last_modified (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_empty_string (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_other_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_line_with_only_last_modified (0.00s)
|
|
||||||
=== RUN TestEditCommand
|
|
||||||
--- PASS: TestEditCommand (0.81s)
|
|
||||||
=== RUN TestBuildHistoryMessages
|
|
||||||
=== RUN TestBuildHistoryMessages/with_recent_commits
|
|
||||||
=== RUN TestBuildHistoryMessages/empty_log
|
|
||||||
--- PASS: TestBuildHistoryMessages (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/with_recent_commits (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/empty_log (0.00s)
|
|
||||||
=== RUN TestBuildLintFixMessages
|
|
||||||
=== RUN TestBuildLintFixMessages/go_file_with_issues
|
|
||||||
=== RUN TestBuildLintFixMessages/python_file_with_issues
|
|
||||||
--- PASS: TestBuildLintFixMessages (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/go_file_with_issues (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/python_file_with_issues (0.00s)
|
|
||||||
=== RUN TestBuildPRDescribeMessages
|
|
||||||
=== RUN TestBuildPRDescribeMessages/branch_with_changes
|
|
||||||
=== RUN TestBuildPRDescribeMessages/empty_diff
|
|
||||||
--- PASS: TestBuildPRDescribeMessages (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/branch_with_changes (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestBuildReviewMessages
|
|
||||||
=== RUN TestBuildReviewMessages/with_status_and_diff
|
|
||||||
=== RUN TestBuildReviewMessages/empty_diff
|
|
||||||
--- PASS: TestBuildReviewMessages (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/with_status_and_diff (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestExecute
|
|
||||||
=== RUN TestExecute/version
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/help
|
|
||||||
A fast, native Go CLI for Grok. Chat, edit files, and supercharge your git workflow.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
grokkit [command]
|
|
||||||
|
|
||||||
Available Commands:
|
|
||||||
agent Multi-file agent — Grok intelligently edits multiple files with preview
|
|
||||||
changelog Generate CHANGELOG.md section from git history for Gitea releases
|
|
||||||
chat Simple interactive CLI chat with Grok (full history + streaming)
|
|
||||||
commit Generate message and commit staged changes
|
|
||||||
commit-msg Generate conventional commit message from staged changes
|
|
||||||
completion Generate shell completion script
|
|
||||||
docs Generate documentation comments for source files
|
|
||||||
edit Edit a file in-place with Grok (safe preview)
|
|
||||||
help Help about any command
|
|
||||||
history Summarize recent git history
|
|
||||||
lint Lint a file and optionally apply AI-suggested fixes
|
|
||||||
pr-describe Generate full PR description from current branch
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
recipe Run a recipe (transactional sous-chef mode)
|
|
||||||
review Review the current repository or directory
|
|
||||||
scaffold Scaffold a new file with Grok (safe preview + confirmation)
|
|
||||||
testgen Generate AI unit tests for files (Go/Python/C/C++, preview/apply)
|
|
||||||
version Print the version information
|
|
||||||
|
|
||||||
Flags:
|
|
||||||
--debug Enable debug logging (logs to stderr and file)
|
|
||||||
-h, --help help for grokkit
|
|
||||||
-m, --model string Grok model to use (overrides config)
|
|
||||||
-v, --verbose Enable verbose logging
|
|
||||||
|
|
||||||
Use "grokkit [command] --help" for more information about a command.
|
|
||||||
=== RUN TestExecute/debug_flag
|
|
||||||
{"time":"2026-03-06T21:38:16.151535509Z","level":"INFO","msg":"grokkit starting","command":"version","log_level":"debug"}
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/verbose_flag
|
|
||||||
grokkit version dev (commit )\n--- PASS: TestExecute (0.00s)
|
|
||||||
--- PASS: TestExecute/version (0.00s)
|
|
||||||
--- PASS: TestExecute/help (0.00s)
|
|
||||||
--- PASS: TestExecute/debug_flag (0.00s)
|
|
||||||
--- PASS: TestExecute/verbose_flag (0.00s)
|
|
||||||
=== RUN TestRunHistory
|
|
||||||
=== RUN TestRunHistory/calls_AI_with_log_output
|
|
||||||
Summarizing recent commits...
|
|
||||||
=== RUN TestRunHistory/no_commits_—_skips_AI
|
|
||||||
No commits found.
|
|
||||||
=== RUN TestRunHistory/git_error_—_skips_AI
|
|
||||||
Failed to get git log: not a git repo
|
|
||||||
--- PASS: TestRunHistory (0.00s)
|
|
||||||
--- PASS: TestRunHistory/calls_AI_with_log_output (0.00s)
|
|
||||||
--- PASS: TestRunHistory/no_commits_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunHistory/git_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunReview
|
|
||||||
=== RUN TestRunReview/reviews_with_diff_and_status
|
|
||||||
Grok is reviewing the repo...
|
|
||||||
=== RUN TestRunReview/git_diff_error_—_skips_AI
|
|
||||||
Failed to get git diff: git error
|
|
||||||
=== RUN TestRunReview/git_status_error_—_skips_AI
|
|
||||||
Failed to get git status: git error
|
|
||||||
--- PASS: TestRunReview (0.00s)
|
|
||||||
--- PASS: TestRunReview/reviews_with_diff_and_status (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_diff_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_status_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunCommit
|
|
||||||
=== RUN TestRunCommit/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommit/git_error_—_skips_AI
|
|
||||||
Failed to get staged changes: not a git repo
|
|
||||||
=== RUN TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin
|
|
||||||
Generating commit message...
|
|
||||||
|
|
||||||
Proposed commit message:
|
|
||||||
feat(cmd): add thing
|
|
||||||
Commit with this message? (y/n):
|
|
||||||
Aborted.
|
|
||||||
--- PASS: TestRunCommit (0.00s)
|
|
||||||
--- PASS: TestRunCommit/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/git_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin (0.00s)
|
|
||||||
=== RUN TestRunCommitMsg
|
|
||||||
=== RUN TestRunCommitMsg/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message
|
|
||||||
Generating commit message...
|
|
||||||
--- PASS: TestRunCommitMsg (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message (0.00s)
|
|
||||||
=== RUN TestRunPRDescribe
|
|
||||||
=== RUN TestRunPRDescribe/no_changes_on_branch_—_skips_AI
|
|
||||||
No changes on this branch compared to master/origin/master.
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/uses_custom_base_branch
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/defaults_to_master
|
|
||||||
Writing PR description...
|
|
||||||
--- PASS: TestRunPRDescribe (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/no_changes_on_branch_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/uses_custom_base_branch (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/defaults_to_master (0.00s)
|
|
||||||
=== RUN TestRunLintFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestRunLintFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestProcessDocsFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileUnsupportedLanguage
|
|
||||||
⚠️ Skipping /tmp/test1921082152.xyz: unsupported file type: .xyz
|
|
||||||
--- PASS: TestProcessDocsFileUnsupportedLanguage (0.00s)
|
|
||||||
=== RUN TestProcessDocsFilePreviewAndCancel
|
|
||||||
📝 Generating Go docs for: /tmp/test1474473091.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Foo does nothing.
|
|
||||||
func Foo() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Apply documentation to /tmp/test1474473091.go? (y/N):
|
|
||||||
❌ Cancelled. No changes made to: /tmp/test1474473091.go
|
|
||||||
--- PASS: TestProcessDocsFilePreviewAndCancel (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileAutoApply
|
|
||||||
📝 Generating Go docs for: /tmp/test2612240936.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Bar does nothing.
|
|
||||||
func Bar() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
✅ Documentation applied: /tmp/test2612240936.go
|
|
||||||
--- PASS: TestProcessDocsFileAutoApply (0.00s)
|
|
||||||
=== RUN TestRunDocs
|
|
||||||
❌ File not found: /nonexistent/file.go
|
|
||||||
--- PASS: TestRunDocs (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd
|
|
||||||
scaffold_test.go:15: ✓ Fast scaffold unit test (no Grok API call)
|
|
||||||
--- PASS: TestScaffoldCmd (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd_Live
|
|
||||||
scaffold_test.go:22: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestScaffoldCmd_Live -short -v
|
|
||||||
--- SKIP: TestScaffoldCmd_Live (0.00s)
|
|
||||||
=== RUN TestTestgenCmd
|
|
||||||
=== PAUSE TestTestgenCmd
|
|
||||||
=== RUN TestTestgenCmd_Live
|
|
||||||
testgen_test.go:17: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestTestgenCmd_Live -short -v
|
|
||||||
--- SKIP: TestTestgenCmd_Live (0.00s)
|
|
||||||
=== RUN TestRemoveSourceComments
|
|
||||||
=== PAUSE TestRemoveSourceComments
|
|
||||||
=== RUN TestGetTestPrompt
|
|
||||||
=== PAUSE TestGetTestPrompt
|
|
||||||
=== RUN TestGetTestFilePath
|
|
||||||
=== PAUSE TestGetTestFilePath
|
|
||||||
=== RUN TestGetCodeLang
|
|
||||||
=== PAUSE TestGetCodeLang
|
|
||||||
=== CONT TestBuildChangelogMessages
|
|
||||||
=== CONT TestGetCodeLang
|
|
||||||
=== RUN TestGetCodeLang/Go
|
|
||||||
=== CONT TestGetTestFilePath
|
|
||||||
--- PASS: TestBuildChangelogMessages (0.00s)
|
|
||||||
=== RUN TestGetTestFilePath/foo.go_Go
|
|
||||||
=== CONT TestBuildFullChangelog
|
|
||||||
=== RUN TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== PAUSE TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== CONT TestGetTestPrompt
|
|
||||||
=== RUN TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== PAUSE TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== RUN TestGetTestPrompt/Go
|
|
||||||
=== CONT TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== CONT TestTestgenCmd
|
|
||||||
=== PAUSE TestGetTestPrompt/Go
|
|
||||||
=== CONT TestRemoveSourceComments
|
|
||||||
=== RUN TestRemoveSourceComments/no_comments
|
|
||||||
=== NAME TestTestgenCmd
|
|
||||||
testgen_test.go:12: ✓ Fast testgen unit test (no Grok API call)
|
|
||||||
=== PAUSE TestRemoveSourceComments/no_comments
|
|
||||||
=== PAUSE TestGetTestFilePath/foo.go_Go
|
|
||||||
=== RUN TestRemoveSourceComments/last_modified
|
|
||||||
--- PASS: TestTestgenCmd (0.00s)
|
|
||||||
=== PAUSE TestRemoveSourceComments/last_modified
|
|
||||||
=== CONT TestChangelogCmd_Flags
|
|
||||||
=== CONT TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== RUN TestGetTestPrompt/Python
|
|
||||||
=== PAUSE TestGetCodeLang/Go
|
|
||||||
=== RUN TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== PAUSE TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== RUN TestRemoveSourceComments/generated_by
|
|
||||||
=== RUN TestGetCodeLang/Python
|
|
||||||
=== PAUSE TestRemoveSourceComments/generated_by
|
|
||||||
=== RUN TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
--- PASS: TestChangelogCmd_Flags (0.00s)
|
|
||||||
=== PAUSE TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== PAUSE TestGetTestPrompt/Python
|
|
||||||
=== RUN TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== RUN TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestGetTestPrompt/C
|
|
||||||
=== PAUSE TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== PAUSE TestGetTestPrompt/C
|
|
||||||
=== RUN TestRemoveSourceComments/python_testgen
|
|
||||||
=== RUN TestGetTestPrompt/C++
|
|
||||||
=== PAUSE TestRemoveSourceComments/python_testgen
|
|
||||||
=== PAUSE TestGetTestPrompt/C++
|
|
||||||
=== PAUSE TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestGetTestPrompt/Invalid
|
|
||||||
=== RUN TestRemoveSourceComments/c_testgen
|
|
||||||
=== RUN TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== PAUSE TestGetTestPrompt/Invalid
|
|
||||||
=== PAUSE TestRemoveSourceComments/c_testgen
|
|
||||||
=== PAUSE TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== CONT TestGetTestPrompt/Python
|
|
||||||
=== CONT TestRemoveSourceComments/no_comments
|
|
||||||
=== CONT TestGetTestFilePath/bar.c_C
|
|
||||||
=== CONT TestGetTestPrompt/C
|
|
||||||
=== CONT TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== CONT TestRemoveSourceComments/generated_by
|
|
||||||
=== CONT TestRemoveSourceComments/python_testgen
|
|
||||||
=== PAUSE TestGetCodeLang/Python
|
|
||||||
=== CONT TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== RUN TestGetCodeLang/C
|
|
||||||
=== PAUSE TestGetCodeLang/C
|
|
||||||
=== RUN TestGetCodeLang/C++
|
|
||||||
=== PAUSE TestGetCodeLang/C++
|
|
||||||
--- PASS: TestBuildFullChangelog (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/prepends_to_existing_file (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/creates_new_file_with_header (0.00s)
|
|
||||||
=== CONT TestRemoveSourceComments/c_testgen
|
|
||||||
=== CONT TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== CONT TestGetTestFilePath/foo.go_Go
|
|
||||||
=== CONT TestGetTestPrompt/Go
|
|
||||||
=== CONT TestGetTestPrompt/Invalid
|
|
||||||
=== CONT TestGetTestPrompt/C++
|
|
||||||
--- PASS: TestGetTestPrompt (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Python (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Go (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Invalid (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C++ (0.00s)
|
|
||||||
=== CONT TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== CONT TestRemoveSourceComments/last_modified
|
|
||||||
=== CONT TestGetCodeLang/Go
|
|
||||||
--- PASS: TestGetTestFilePath (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/bar.c_C (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/dir/foo.py_Python (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/foo.go_Go (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/baz.cpp_C++ (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/no_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/generated_by (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/python_testgen (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/partial_match_no_remove (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/c_testgen (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/multiple_removable_lines (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/last_modified (0.00s)
|
|
||||||
=== CONT TestGetCodeLang/C++
|
|
||||||
=== CONT TestGetCodeLang/Python
|
|
||||||
=== CONT TestGetCodeLang/C
|
|
||||||
--- PASS: TestGetCodeLang (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Go (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C++ (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Python (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/cmd 1.839s
|
|
||||||
=== RUN TestGetModel
|
|
||||||
=== RUN TestGetModel/returns_flag_model_when_provided
|
|
||||||
=== RUN TestGetModel/returns_default_when_flag_empty
|
|
||||||
--- PASS: TestGetModel (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_flag_model_when_provided (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_default_when_flag_empty (0.00s)
|
|
||||||
=== RUN TestGetModelWithAlias
|
|
||||||
--- PASS: TestGetModelWithAlias (0.00s)
|
|
||||||
=== RUN TestGetCommandModel
|
|
||||||
=== RUN TestGetCommandModel/lint_
|
|
||||||
=== RUN TestGetCommandModel/lint_override
|
|
||||||
=== RUN TestGetCommandModel/other_
|
|
||||||
=== RUN TestGetCommandModel/unknown_
|
|
||||||
--- PASS: TestGetCommandModel (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_override (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/other_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/unknown_ (0.00s)
|
|
||||||
=== RUN TestLoad
|
|
||||||
--- PASS: TestLoad (0.00s)
|
|
||||||
=== RUN TestGetTemperature
|
|
||||||
--- PASS: TestGetTemperature (0.00s)
|
|
||||||
=== RUN TestGetTimeout
|
|
||||||
--- PASS: TestGetTimeout (0.00s)
|
|
||||||
=== RUN TestGetLogLevel
|
|
||||||
--- PASS: TestGetLogLevel (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/config (cached)
|
|
||||||
=== RUN TestGitError
|
|
||||||
--- PASS: TestGitError (0.00s)
|
|
||||||
=== RUN TestAPIError
|
|
||||||
=== RUN TestAPIError/with_status_code
|
|
||||||
=== RUN TestAPIError/without_status_code
|
|
||||||
--- PASS: TestAPIError (0.00s)
|
|
||||||
--- PASS: TestAPIError/with_status_code (0.00s)
|
|
||||||
--- PASS: TestAPIError/without_status_code (0.00s)
|
|
||||||
=== RUN TestFileError
|
|
||||||
--- PASS: TestFileError (0.00s)
|
|
||||||
=== RUN TestAPIErrorUnwrap
|
|
||||||
--- PASS: TestAPIErrorUnwrap (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/errors (cached)
|
|
||||||
=== RUN TestIsRepo
|
|
||||||
--- PASS: TestIsRepo (0.00s)
|
|
||||||
=== RUN TestRun
|
|
||||||
=== RUN TestRun/version_command_succeeds
|
|
||||||
=== RUN TestRun/invalid_command_fails
|
|
||||||
--- PASS: TestRun (0.01s)
|
|
||||||
--- PASS: TestRun/version_command_succeeds (0.00s)
|
|
||||||
--- PASS: TestRun/invalid_command_fails (0.01s)
|
|
||||||
=== RUN TestGitRunner
|
|
||||||
--- PASS: TestGitRunner (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/git (cached)
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_leading_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_multiple_languages
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_only_fence_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_empty_input
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_only_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_code_indentation
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_leading_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_multiple_languages (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_only_fence_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_empty_input (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_only_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_code_indentation (0.00s)
|
|
||||||
=== RUN TestCleanCodeResponse
|
|
||||||
=== RUN TestCleanCodeResponse/removes_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse/removes_language_tag
|
|
||||||
=== RUN TestCleanCodeResponse/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse/trims_whitespace
|
|
||||||
--- PASS: TestCleanCodeResponse (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_language_tag (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/trims_whitespace (0.00s)
|
|
||||||
=== RUN TestStreamSilent
|
|
||||||
--- PASS: TestStreamSilent (0.00s)
|
|
||||||
=== RUN TestStream
|
|
||||||
foobar
|
|
||||||
--- PASS: TestStream (0.00s)
|
|
||||||
=== RUN TestStreamWithTemp
|
|
||||||
response
|
|
||||||
--- PASS: TestStreamWithTemp (0.00s)
|
|
||||||
=== RUN TestStreamDoneSignal
|
|
||||||
--- PASS: TestStreamDoneSignal (0.00s)
|
|
||||||
=== RUN TestStreamEmptyResponse
|
|
||||||
--- PASS: TestStreamEmptyResponse (0.00s)
|
|
||||||
=== RUN TestNewClient
|
|
||||||
--- PASS: TestNewClient (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/grok (cached)
|
|
||||||
=== RUN TestDetectLanguage
|
|
||||||
=== RUN TestDetectLanguage/Go_file
|
|
||||||
=== RUN TestDetectLanguage/Python_file
|
|
||||||
=== RUN TestDetectLanguage/JavaScript_file
|
|
||||||
=== RUN TestDetectLanguage/JSX_file
|
|
||||||
=== RUN TestDetectLanguage/TypeScript_file
|
|
||||||
=== RUN TestDetectLanguage/TSX_file
|
|
||||||
=== RUN TestDetectLanguage/Rust_file
|
|
||||||
=== RUN TestDetectLanguage/Ruby_file
|
|
||||||
=== RUN TestDetectLanguage/Java_file
|
|
||||||
=== RUN TestDetectLanguage/C_file
|
|
||||||
=== RUN TestDetectLanguage/C++_file
|
|
||||||
=== RUN TestDetectLanguage/Header_file
|
|
||||||
=== RUN TestDetectLanguage/Shell_script
|
|
||||||
=== RUN TestDetectLanguage/Bash_script
|
|
||||||
=== RUN TestDetectLanguage/Unsupported_file
|
|
||||||
=== RUN TestDetectLanguage/No_extension
|
|
||||||
=== RUN TestDetectLanguage/Case_insensitive
|
|
||||||
--- PASS: TestDetectLanguage (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Go_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Python_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JavaScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TypeScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Rust_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Ruby_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Java_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C++_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Header_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Shell_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Bash_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Unsupported_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/No_extension (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Case_insensitive (0.00s)
|
|
||||||
=== RUN TestCheckLinterAvailable
|
|
||||||
=== RUN TestCheckLinterAvailable/go_command_should_be_available
|
|
||||||
linter_test.go:84: go should be available on system with Go installed: available=true
|
|
||||||
=== RUN TestCheckLinterAvailable/nonexistent_command
|
|
||||||
linter_test.go:84: nonexistent command should not be available: available=false
|
|
||||||
--- PASS: TestCheckLinterAvailable (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/go_command_should_be_available (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/nonexistent_command (0.00s)
|
|
||||||
=== RUN TestFindAvailableLinter
|
|
||||||
=== RUN TestFindAvailableLinter/Go_language_should_find_a_linter
|
|
||||||
=== RUN TestFindAvailableLinter/Language_with_no_available_linters
|
|
||||||
--- PASS: TestFindAvailableLinter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Go_language_should_find_a_linter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Language_with_no_available_linters (0.00s)
|
|
||||||
=== RUN TestRunLinter
|
|
||||||
=== RUN TestRunLinter/Run_go_vet_on_valid_file
|
|
||||||
linter_test.go:179: go vet result: ExitCode=0, HasIssues=false, Output=""
|
|
||||||
=== RUN TestRunLinter/Run_nonexistent_linter
|
|
||||||
--- PASS: TestRunLinter (0.07s)
|
|
||||||
--- PASS: TestRunLinter/Run_go_vet_on_valid_file (0.07s)
|
|
||||||
--- PASS: TestRunLinter/Run_nonexistent_linter (0.00s)
|
|
||||||
=== RUN TestLintFile
|
|
||||||
=== RUN TestLintFile/Lint_valid_Go_file
|
|
||||||
=== RUN TestLintFile/Lint_nonexistent_file
|
|
||||||
=== RUN TestLintFile/Lint_unsupported_file_type
|
|
||||||
--- PASS: TestLintFile (0.16s)
|
|
||||||
--- PASS: TestLintFile/Lint_valid_Go_file (0.16s)
|
|
||||||
--- PASS: TestLintFile/Lint_nonexistent_file (0.00s)
|
|
||||||
--- PASS: TestLintFile/Lint_unsupported_file_type (0.00s)
|
|
||||||
=== RUN TestGetSupportedLanguages
|
|
||||||
--- PASS: TestGetSupportedLanguages (0.00s)
|
|
||||||
=== RUN TestLanguageStructure
|
|
||||||
--- PASS: TestLanguageStructure (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/linter (cached)
|
|
||||||
=== RUN TestInit
|
|
||||||
=== RUN TestInit/default_level
|
|
||||||
=== RUN TestInit/debug_level
|
|
||||||
=== RUN TestInit/warn_level
|
|
||||||
=== RUN TestInit/error_level
|
|
||||||
=== RUN TestInit/invalid_level_defaults_to_info
|
|
||||||
--- PASS: TestInit (0.00s)
|
|
||||||
--- PASS: TestInit/default_level (0.00s)
|
|
||||||
--- PASS: TestInit/debug_level (0.00s)
|
|
||||||
--- PASS: TestInit/warn_level (0.00s)
|
|
||||||
--- PASS: TestInit/error_level (0.00s)
|
|
||||||
--- PASS: TestInit/invalid_level_defaults_to_info (0.00s)
|
|
||||||
=== RUN TestLogging
|
|
||||||
{"time":"2026-03-04T19:52:04.116795514Z","level":"DEBUG","msg":"test debug message","key":"value"}
|
|
||||||
{"time":"2026-03-04T19:52:04.116935804Z","level":"INFO","msg":"test info message","count":42}
|
|
||||||
{"time":"2026-03-04T19:52:04.116957313Z","level":"WARN","msg":"test warn message","enabled":true}
|
|
||||||
{"time":"2026-03-04T19:52:04.116977684Z","level":"ERROR","msg":"test error message","error":"something went wrong"}
|
|
||||||
--- PASS: TestLogging (0.00s)
|
|
||||||
=== RUN TestSetLevel
|
|
||||||
--- PASS: TestSetLevel (0.00s)
|
|
||||||
=== RUN TestWith
|
|
||||||
--- PASS: TestWith (0.00s)
|
|
||||||
=== RUN TestWithContext
|
|
||||||
=== RUN TestWithContext/without_init
|
|
||||||
=== RUN TestWithContext/with_init
|
|
||||||
--- PASS: TestWithContext (0.00s)
|
|
||||||
--- PASS: TestWithContext/without_init (0.00s)
|
|
||||||
--- PASS: TestWithContext/with_init (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/logger (cached)
|
|
||||||
=== RUN TestExtractCodeBlocks
|
|
||||||
=== PAUSE TestExtractCodeBlocks
|
|
||||||
=== CONT TestExtractCodeBlocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Single_block
|
|
||||||
=== RUN TestExtractCodeBlocks/Multiple_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/No_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Incomplete_block
|
|
||||||
--- PASS: TestExtractCodeBlocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Single_block (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Multiple_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/No_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Incomplete_block (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/recipe (cached)
|
|
||||||
=== RUN TestVersionInfo
|
|
||||||
=== PAUSE TestVersionInfo
|
|
||||||
=== CONT TestVersionInfo
|
|
||||||
=== RUN TestVersionInfo/Version
|
|
||||||
=== PAUSE TestVersionInfo/Version
|
|
||||||
=== RUN TestVersionInfo/Commit
|
|
||||||
=== PAUSE TestVersionInfo/Commit
|
|
||||||
=== RUN TestVersionInfo/BuildDate
|
|
||||||
=== PAUSE TestVersionInfo/BuildDate
|
|
||||||
=== CONT TestVersionInfo/Version
|
|
||||||
=== CONT TestVersionInfo/Commit
|
|
||||||
=== CONT TestVersionInfo/BuildDate
|
|
||||||
--- PASS: TestVersionInfo (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Version (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Commit (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/BuildDate (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/version (cached)
|
|
||||||
@ -1,644 +0,0 @@
|
|||||||
? gmgauthier.com/grokkit [no test files]
|
|
||||||
=== RUN TestAgentCommand_PlanGeneration
|
|
||||||
agent_test.go:8: Agent plan generation test placeholder — ready for expansion
|
|
||||||
--- PASS: TestAgentCommand_PlanGeneration (0.00s)
|
|
||||||
=== RUN TestAgentCommand_CleanCodeResponseIntegration
|
|
||||||
--- PASS: TestAgentCommand_CleanCodeResponseIntegration (0.00s)
|
|
||||||
=== RUN TestBuildChangelogMessages
|
|
||||||
=== PAUSE TestBuildChangelogMessages
|
|
||||||
=== RUN TestBuildFullChangelog
|
|
||||||
=== PAUSE TestBuildFullChangelog
|
|
||||||
=== RUN TestChangelogCmd_Flags
|
|
||||||
=== PAUSE TestChangelogCmd_Flags
|
|
||||||
=== RUN TestGetChatHistoryFile
|
|
||||||
--- PASS: TestGetChatHistoryFile (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_NoFile
|
|
||||||
--- PASS: TestLoadChatHistory_NoFile (0.00s)
|
|
||||||
=== RUN TestSaveAndLoadChatHistory
|
|
||||||
--- PASS: TestSaveAndLoadChatHistory (0.00s)
|
|
||||||
=== RUN TestLoadChatHistory_InvalidJSON
|
|
||||||
--- PASS: TestLoadChatHistory_InvalidJSON (0.00s)
|
|
||||||
=== RUN TestBuildCommitMessages
|
|
||||||
=== RUN TestBuildCommitMessages/normal_diff
|
|
||||||
=== RUN TestBuildCommitMessages/empty_diff
|
|
||||||
--- PASS: TestBuildCommitMessages (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/normal_diff (0.00s)
|
|
||||||
--- PASS: TestBuildCommitMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestCompletionCmd
|
|
||||||
=== RUN TestCompletionCmd/bash
|
|
||||||
=== RUN TestCompletionCmd/zsh
|
|
||||||
=== RUN TestCompletionCmd/fish
|
|
||||||
=== RUN TestCompletionCmd/powershell
|
|
||||||
--- PASS: TestCompletionCmd (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/bash (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/zsh (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/fish (0.00s)
|
|
||||||
--- PASS: TestCompletionCmd/powershell (0.00s)
|
|
||||||
=== RUN TestBuildDocsMessages
|
|
||||||
=== RUN TestBuildDocsMessages/Go
|
|
||||||
=== RUN TestBuildDocsMessages/Python
|
|
||||||
=== RUN TestBuildDocsMessages/C
|
|
||||||
=== RUN TestBuildDocsMessages/C++
|
|
||||||
=== RUN TestBuildDocsMessages/JavaScript
|
|
||||||
=== RUN TestBuildDocsMessages/TypeScript
|
|
||||||
=== RUN TestBuildDocsMessages/Rust
|
|
||||||
=== RUN TestBuildDocsMessages/Ruby
|
|
||||||
=== RUN TestBuildDocsMessages/Java
|
|
||||||
=== RUN TestBuildDocsMessages/Shell
|
|
||||||
--- PASS: TestBuildDocsMessages (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Go (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Python (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/C++ (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/JavaScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/TypeScript (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Rust (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Ruby (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Java (0.00s)
|
|
||||||
--- PASS: TestBuildDocsMessages/Shell (0.00s)
|
|
||||||
=== RUN TestDocStyle
|
|
||||||
=== RUN TestDocStyle/go
|
|
||||||
=== RUN TestDocStyle/Go
|
|
||||||
=== RUN TestDocStyle/python
|
|
||||||
=== RUN TestDocStyle/c
|
|
||||||
=== RUN TestDocStyle/c++
|
|
||||||
=== RUN TestDocStyle/javascript
|
|
||||||
=== RUN TestDocStyle/typescript
|
|
||||||
=== RUN TestDocStyle/rust
|
|
||||||
=== RUN TestDocStyle/ruby
|
|
||||||
=== RUN TestDocStyle/java
|
|
||||||
=== RUN TestDocStyle/shell
|
|
||||||
=== RUN TestDocStyle/bash
|
|
||||||
=== RUN TestDocStyle/unknown
|
|
||||||
--- PASS: TestDocStyle (0.00s)
|
|
||||||
--- PASS: TestDocStyle/go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/Go (0.00s)
|
|
||||||
--- PASS: TestDocStyle/python (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c (0.00s)
|
|
||||||
--- PASS: TestDocStyle/c++ (0.00s)
|
|
||||||
--- PASS: TestDocStyle/javascript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/typescript (0.00s)
|
|
||||||
--- PASS: TestDocStyle/rust (0.00s)
|
|
||||||
--- PASS: TestDocStyle/ruby (0.00s)
|
|
||||||
--- PASS: TestDocStyle/java (0.00s)
|
|
||||||
--- PASS: TestDocStyle/shell (0.00s)
|
|
||||||
--- PASS: TestDocStyle/bash (0.00s)
|
|
||||||
--- PASS: TestDocStyle/unknown (0.00s)
|
|
||||||
=== RUN TestRemoveLastModifiedComments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_last_modified_comment
|
|
||||||
=== RUN TestRemoveLastModifiedComments/removes_multiple_last_modified_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_code_without_last_modified
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_empty_string
|
|
||||||
=== RUN TestRemoveLastModifiedComments/preserves_other_comments
|
|
||||||
=== RUN TestRemoveLastModifiedComments/handles_line_with_only_last_modified
|
|
||||||
--- PASS: TestRemoveLastModifiedComments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_last_modified_comment (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/removes_multiple_last_modified_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_code_without_last_modified (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_empty_string (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/preserves_other_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveLastModifiedComments/handles_line_with_only_last_modified (0.00s)
|
|
||||||
=== RUN TestEditCommand
|
|
||||||
--- PASS: TestEditCommand (0.80s)
|
|
||||||
=== RUN TestBuildHistoryMessages
|
|
||||||
=== RUN TestBuildHistoryMessages/with_recent_commits
|
|
||||||
=== RUN TestBuildHistoryMessages/empty_log
|
|
||||||
--- PASS: TestBuildHistoryMessages (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/with_recent_commits (0.00s)
|
|
||||||
--- PASS: TestBuildHistoryMessages/empty_log (0.00s)
|
|
||||||
=== RUN TestBuildLintFixMessages
|
|
||||||
=== RUN TestBuildLintFixMessages/go_file_with_issues
|
|
||||||
=== RUN TestBuildLintFixMessages/python_file_with_issues
|
|
||||||
--- PASS: TestBuildLintFixMessages (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/go_file_with_issues (0.00s)
|
|
||||||
--- PASS: TestBuildLintFixMessages/python_file_with_issues (0.00s)
|
|
||||||
=== RUN TestBuildPRDescribeMessages
|
|
||||||
=== RUN TestBuildPRDescribeMessages/branch_with_changes
|
|
||||||
=== RUN TestBuildPRDescribeMessages/empty_diff
|
|
||||||
--- PASS: TestBuildPRDescribeMessages (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/branch_with_changes (0.00s)
|
|
||||||
--- PASS: TestBuildPRDescribeMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestBuildReviewMessages
|
|
||||||
=== RUN TestBuildReviewMessages/with_status_and_diff
|
|
||||||
=== RUN TestBuildReviewMessages/empty_diff
|
|
||||||
--- PASS: TestBuildReviewMessages (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/with_status_and_diff (0.00s)
|
|
||||||
--- PASS: TestBuildReviewMessages/empty_diff (0.00s)
|
|
||||||
=== RUN TestExecute
|
|
||||||
=== RUN TestExecute/version
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/help
|
|
||||||
A fast, native Go CLI for Grok. Chat, edit files, and supercharge your git workflow.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
grokkit [command]
|
|
||||||
|
|
||||||
Available Commands:
|
|
||||||
agent Multi-file agent — Grok intelligently edits multiple files with preview
|
|
||||||
changelog Generate CHANGELOG.md section from git history for Gitea releases
|
|
||||||
chat Simple interactive CLI chat with Grok (full history + streaming)
|
|
||||||
commit Generate message and commit staged changes
|
|
||||||
commit-msg Generate conventional commit message from staged changes
|
|
||||||
completion Generate shell completion script
|
|
||||||
docs Generate documentation comments for source files
|
|
||||||
edit Edit a file in-place with Grok (safe preview)
|
|
||||||
help Help about any command
|
|
||||||
history Summarize recent git history
|
|
||||||
lint Lint a file and optionally apply AI-suggested fixes
|
|
||||||
pr-describe Generate full PR description from current branch
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
query One-shot non-interactive query to Grok (programming focused)
|
|
||||||
recipe Run a recipe (transactional sous-chef mode)
|
|
||||||
review Review the current repository or directory
|
|
||||||
scaffold Scaffold a new file with Grok (safe preview + confirmation)
|
|
||||||
testgen Generate AI unit tests for files (Go/Python/C/C++, preview/apply)
|
|
||||||
version Print the version information
|
|
||||||
|
|
||||||
Flags:
|
|
||||||
--debug Enable debug logging (logs to stderr and file)
|
|
||||||
-h, --help help for grokkit
|
|
||||||
-m, --model string Grok model to use (overrides config)
|
|
||||||
-v, --verbose Enable verbose logging
|
|
||||||
|
|
||||||
Use "grokkit [command] --help" for more information about a command.
|
|
||||||
=== RUN TestExecute/debug_flag
|
|
||||||
{"time":"2026-03-06T21:38:27.053675791Z","level":"INFO","msg":"grokkit starting","command":"version","log_level":"debug"}
|
|
||||||
grokkit version dev (commit )\n=== RUN TestExecute/verbose_flag
|
|
||||||
grokkit version dev (commit )\n--- PASS: TestExecute (0.00s)
|
|
||||||
--- PASS: TestExecute/version (0.00s)
|
|
||||||
--- PASS: TestExecute/help (0.00s)
|
|
||||||
--- PASS: TestExecute/debug_flag (0.00s)
|
|
||||||
--- PASS: TestExecute/verbose_flag (0.00s)
|
|
||||||
=== RUN TestRunHistory
|
|
||||||
=== RUN TestRunHistory/calls_AI_with_log_output
|
|
||||||
Summarizing recent commits...
|
|
||||||
=== RUN TestRunHistory/no_commits_—_skips_AI
|
|
||||||
No commits found.
|
|
||||||
=== RUN TestRunHistory/git_error_—_skips_AI
|
|
||||||
Failed to get git log: not a git repo
|
|
||||||
--- PASS: TestRunHistory (0.00s)
|
|
||||||
--- PASS: TestRunHistory/calls_AI_with_log_output (0.00s)
|
|
||||||
--- PASS: TestRunHistory/no_commits_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunHistory/git_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunReview
|
|
||||||
=== RUN TestRunReview/reviews_with_diff_and_status
|
|
||||||
Grok is reviewing the repo...
|
|
||||||
=== RUN TestRunReview/git_diff_error_—_skips_AI
|
|
||||||
Failed to get git diff: git error
|
|
||||||
=== RUN TestRunReview/git_status_error_—_skips_AI
|
|
||||||
Failed to get git status: git error
|
|
||||||
--- PASS: TestRunReview (0.00s)
|
|
||||||
--- PASS: TestRunReview/reviews_with_diff_and_status (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_diff_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunReview/git_status_error_—_skips_AI (0.00s)
|
|
||||||
=== RUN TestRunCommit
|
|
||||||
=== RUN TestRunCommit/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommit/git_error_—_skips_AI
|
|
||||||
Failed to get staged changes: not a git repo
|
|
||||||
=== RUN TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin
|
|
||||||
Generating commit message...
|
|
||||||
|
|
||||||
Proposed commit message:
|
|
||||||
feat(cmd): add thing
|
|
||||||
Commit with this message? (y/n):
|
|
||||||
Aborted.
|
|
||||||
--- PASS: TestRunCommit (0.00s)
|
|
||||||
--- PASS: TestRunCommit/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/git_error_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommit/with_staged_changes_—_calls_AI_then_cancels_via_stdin (0.00s)
|
|
||||||
=== RUN TestRunCommitMsg
|
|
||||||
=== RUN TestRunCommitMsg/no_staged_changes_—_skips_AI
|
|
||||||
No staged changes!
|
|
||||||
=== RUN TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message
|
|
||||||
Generating commit message...
|
|
||||||
--- PASS: TestRunCommitMsg (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/no_staged_changes_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunCommitMsg/with_staged_changes_—_calls_AI_and_prints_message (0.00s)
|
|
||||||
=== RUN TestRunPRDescribe
|
|
||||||
=== RUN TestRunPRDescribe/no_changes_on_branch_—_skips_AI
|
|
||||||
No changes on this branch compared to master/origin/master.
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/uses_custom_base_branch
|
|
||||||
Writing PR description...
|
|
||||||
=== RUN TestRunPRDescribe/defaults_to_master
|
|
||||||
Writing PR description...
|
|
||||||
--- PASS: TestRunPRDescribe (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/no_changes_on_branch_—_skips_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/first_diff_empty,_second_succeeds_—_calls_AI (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/uses_custom_base_branch (0.00s)
|
|
||||||
--- PASS: TestRunPRDescribe/defaults_to_master (0.00s)
|
|
||||||
=== RUN TestRunLintFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestRunLintFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileNotFound
|
|
||||||
❌ File not found: /nonexistent/path/file.go
|
|
||||||
--- PASS: TestProcessDocsFileNotFound (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileUnsupportedLanguage
|
|
||||||
⚠️ Skipping /tmp/test3313905325.xyz: unsupported file type: .xyz
|
|
||||||
--- PASS: TestProcessDocsFileUnsupportedLanguage (0.00s)
|
|
||||||
=== RUN TestProcessDocsFilePreviewAndCancel
|
|
||||||
📝 Generating Go docs for: /tmp/test3983744019.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Foo does nothing.
|
|
||||||
func Foo() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Apply documentation to /tmp/test3983744019.go? (y/N):
|
|
||||||
❌ Cancelled. No changes made to: /tmp/test3983744019.go
|
|
||||||
--- PASS: TestProcessDocsFilePreviewAndCancel (0.00s)
|
|
||||||
=== RUN TestProcessDocsFileAutoApply
|
|
||||||
📝 Generating Go docs for: /tmp/test1798745211.go
|
|
||||||
|
|
||||||
📋 Preview of documented code:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
package main
|
|
||||||
|
|
||||||
// Bar does nothing.
|
|
||||||
func Bar() {}
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
✅ Documentation applied: /tmp/test1798745211.go
|
|
||||||
--- PASS: TestProcessDocsFileAutoApply (0.00s)
|
|
||||||
=== RUN TestRunDocs
|
|
||||||
❌ File not found: /nonexistent/file.go
|
|
||||||
--- PASS: TestRunDocs (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd
|
|
||||||
scaffold_test.go:15: ✓ Fast scaffold unit test (no Grok API call)
|
|
||||||
--- PASS: TestScaffoldCmd (0.00s)
|
|
||||||
=== RUN TestScaffoldCmd_Live
|
|
||||||
scaffold_test.go:22: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestScaffoldCmd_Live -short -v
|
|
||||||
--- SKIP: TestScaffoldCmd_Live (0.00s)
|
|
||||||
=== RUN TestTestgenCmd
|
|
||||||
=== PAUSE TestTestgenCmd
|
|
||||||
=== RUN TestTestgenCmd_Live
|
|
||||||
testgen_test.go:17: skipping live Grok integration test. Run with:
|
|
||||||
go test ./cmd -run TestTestgenCmd_Live -short -v
|
|
||||||
--- SKIP: TestTestgenCmd_Live (0.00s)
|
|
||||||
=== RUN TestRemoveSourceComments
|
|
||||||
=== PAUSE TestRemoveSourceComments
|
|
||||||
=== RUN TestGetTestPrompt
|
|
||||||
=== PAUSE TestGetTestPrompt
|
|
||||||
=== RUN TestGetTestFilePath
|
|
||||||
=== PAUSE TestGetTestFilePath
|
|
||||||
=== RUN TestGetCodeLang
|
|
||||||
=== PAUSE TestGetCodeLang
|
|
||||||
=== CONT TestBuildChangelogMessages
|
|
||||||
=== CONT TestTestgenCmd
|
|
||||||
=== CONT TestChangelogCmd_Flags
|
|
||||||
=== CONT TestBuildFullChangelog
|
|
||||||
=== RUN TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
--- PASS: TestBuildChangelogMessages (0.00s)
|
|
||||||
=== PAUSE TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
--- PASS: TestChangelogCmd_Flags (0.00s)
|
|
||||||
=== CONT TestGetTestFilePath
|
|
||||||
=== RUN TestGetTestFilePath/foo.go_Go
|
|
||||||
=== PAUSE TestGetTestFilePath/foo.go_Go
|
|
||||||
=== RUN TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== RUN TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== CONT TestRemoveSourceComments
|
|
||||||
=== RUN TestRemoveSourceComments/no_comments
|
|
||||||
=== PAUSE TestRemoveSourceComments/no_comments
|
|
||||||
=== RUN TestRemoveSourceComments/last_modified
|
|
||||||
=== PAUSE TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== PAUSE TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== PAUSE TestRemoveSourceComments/last_modified
|
|
||||||
=== RUN TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestRemoveSourceComments/generated_by
|
|
||||||
=== CONT TestBuildFullChangelog/creates_new_file_with_header
|
|
||||||
=== CONT TestGetCodeLang
|
|
||||||
=== PAUSE TestRemoveSourceComments/generated_by
|
|
||||||
=== RUN TestGetCodeLang/Go
|
|
||||||
=== RUN TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== CONT TestBuildFullChangelog/prepends_to_existing_file
|
|
||||||
=== NAME TestTestgenCmd
|
|
||||||
testgen_test.go:12: ✓ Fast testgen unit test (no Grok API call)
|
|
||||||
--- PASS: TestTestgenCmd (0.00s)
|
|
||||||
=== CONT TestGetTestPrompt
|
|
||||||
=== RUN TestGetTestPrompt/Go
|
|
||||||
=== PAUSE TestGetTestPrompt/Go
|
|
||||||
=== PAUSE TestGetTestFilePath/bar.c_C
|
|
||||||
=== PAUSE TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== RUN TestGetTestPrompt/Python
|
|
||||||
=== RUN TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== RUN TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== PAUSE TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== PAUSE TestGetTestPrompt/Python
|
|
||||||
=== PAUSE TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== PAUSE TestGetCodeLang/Go
|
|
||||||
=== CONT TestGetTestFilePath/bar.c_C
|
|
||||||
=== RUN TestRemoveSourceComments/python_testgen
|
|
||||||
=== RUN TestGetCodeLang/Python
|
|
||||||
=== PAUSE TestRemoveSourceComments/python_testgen
|
|
||||||
=== PAUSE TestGetCodeLang/Python
|
|
||||||
=== RUN TestRemoveSourceComments/c_testgen
|
|
||||||
=== RUN TestGetCodeLang/C
|
|
||||||
=== PAUSE TestRemoveSourceComments/c_testgen
|
|
||||||
=== CONT TestGetTestFilePath/foo.go_Go
|
|
||||||
=== PAUSE TestGetCodeLang/C
|
|
||||||
=== CONT TestRemoveSourceComments/no_comments
|
|
||||||
=== RUN TestGetCodeLang/C++
|
|
||||||
=== CONT TestGetTestFilePath/baz.cpp_C++
|
|
||||||
=== CONT TestRemoveSourceComments/partial_match_no_remove
|
|
||||||
=== CONT TestRemoveSourceComments/generated_by
|
|
||||||
=== CONT TestRemoveSourceComments/multiple_removable_lines
|
|
||||||
=== CONT TestRemoveSourceComments/python_testgen
|
|
||||||
=== CONT TestGetTestFilePath/dir/foo.py_Python
|
|
||||||
=== CONT TestRemoveSourceComments/last_modified
|
|
||||||
=== RUN TestGetTestPrompt/C
|
|
||||||
=== PAUSE TestGetTestPrompt/C
|
|
||||||
=== CONT TestRemoveSourceComments/c_testgen
|
|
||||||
=== RUN TestGetTestPrompt/C++
|
|
||||||
--- PASS: TestGetTestFilePath (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/bar.c_C (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/foo.go_Go (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/baz.cpp_C++ (0.00s)
|
|
||||||
--- PASS: TestGetTestFilePath/dir/foo.py_Python (0.00s)
|
|
||||||
=== PAUSE TestGetTestPrompt/C++
|
|
||||||
=== RUN TestGetTestPrompt/Invalid
|
|
||||||
=== PAUSE TestGetCodeLang/C++
|
|
||||||
=== PAUSE TestGetTestPrompt/Invalid
|
|
||||||
--- PASS: TestRemoveSourceComments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/no_comments (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/generated_by (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/multiple_removable_lines (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/partial_match_no_remove (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/python_testgen (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/last_modified (0.00s)
|
|
||||||
--- PASS: TestRemoveSourceComments/c_testgen (0.00s)
|
|
||||||
=== CONT TestGetTestPrompt/C
|
|
||||||
=== CONT TestGetCodeLang/Go
|
|
||||||
=== CONT TestGetCodeLang/Python
|
|
||||||
=== CONT TestGetTestPrompt/Go
|
|
||||||
--- PASS: TestBuildFullChangelog (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/creates_new_file_with_header (0.00s)
|
|
||||||
--- PASS: TestBuildFullChangelog/prepends_to_existing_file (0.00s)
|
|
||||||
=== CONT TestGetTestPrompt/Invalid
|
|
||||||
=== CONT TestGetCodeLang/C
|
|
||||||
=== CONT TestGetTestPrompt/C++
|
|
||||||
=== CONT TestGetTestPrompt/Python
|
|
||||||
=== CONT TestGetCodeLang/C++
|
|
||||||
--- PASS: TestGetTestPrompt (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Go (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Invalid (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/C++ (0.00s)
|
|
||||||
--- PASS: TestGetTestPrompt/Python (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Python (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/Go (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C (0.00s)
|
|
||||||
--- PASS: TestGetCodeLang/C++ (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/cmd 1.837s
|
|
||||||
=== RUN TestGetModel
|
|
||||||
=== RUN TestGetModel/returns_flag_model_when_provided
|
|
||||||
=== RUN TestGetModel/returns_default_when_flag_empty
|
|
||||||
--- PASS: TestGetModel (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_flag_model_when_provided (0.00s)
|
|
||||||
--- PASS: TestGetModel/returns_default_when_flag_empty (0.00s)
|
|
||||||
=== RUN TestGetModelWithAlias
|
|
||||||
--- PASS: TestGetModelWithAlias (0.00s)
|
|
||||||
=== RUN TestGetCommandModel
|
|
||||||
=== RUN TestGetCommandModel/lint_
|
|
||||||
=== RUN TestGetCommandModel/lint_override
|
|
||||||
=== RUN TestGetCommandModel/other_
|
|
||||||
=== RUN TestGetCommandModel/unknown_
|
|
||||||
--- PASS: TestGetCommandModel (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/lint_override (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/other_ (0.00s)
|
|
||||||
--- PASS: TestGetCommandModel/unknown_ (0.00s)
|
|
||||||
=== RUN TestLoad
|
|
||||||
--- PASS: TestLoad (0.00s)
|
|
||||||
=== RUN TestGetTemperature
|
|
||||||
--- PASS: TestGetTemperature (0.00s)
|
|
||||||
=== RUN TestGetTimeout
|
|
||||||
--- PASS: TestGetTimeout (0.00s)
|
|
||||||
=== RUN TestGetLogLevel
|
|
||||||
--- PASS: TestGetLogLevel (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/config 1.011s
|
|
||||||
=== RUN TestGitError
|
|
||||||
--- PASS: TestGitError (0.00s)
|
|
||||||
=== RUN TestAPIError
|
|
||||||
=== RUN TestAPIError/with_status_code
|
|
||||||
=== RUN TestAPIError/without_status_code
|
|
||||||
--- PASS: TestAPIError (0.00s)
|
|
||||||
--- PASS: TestAPIError/with_status_code (0.00s)
|
|
||||||
--- PASS: TestAPIError/without_status_code (0.00s)
|
|
||||||
=== RUN TestFileError
|
|
||||||
--- PASS: TestFileError (0.00s)
|
|
||||||
=== RUN TestAPIErrorUnwrap
|
|
||||||
--- PASS: TestAPIErrorUnwrap (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/errors 1.008s
|
|
||||||
=== RUN TestIsRepo
|
|
||||||
--- PASS: TestIsRepo (0.00s)
|
|
||||||
=== RUN TestRun
|
|
||||||
=== RUN TestRun/version_command_succeeds
|
|
||||||
=== RUN TestRun/invalid_command_fails
|
|
||||||
--- PASS: TestRun (0.01s)
|
|
||||||
--- PASS: TestRun/version_command_succeeds (0.00s)
|
|
||||||
--- PASS: TestRun/invalid_command_fails (0.01s)
|
|
||||||
=== RUN TestGitRunner
|
|
||||||
--- PASS: TestGitRunner (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/git 1.023s
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_leading_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_multiple_languages
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/removes_only_fence_lines
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_empty_input
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/handles_only_fences
|
|
||||||
=== RUN TestCleanCodeResponse_Comprehensive/preserves_code_indentation
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_go_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_python_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_plain_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_leading_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/trims_trailing_whitespace (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_multiple_languages (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_fences_with_extra_spaces (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/removes_only_fence_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_empty_input (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/handles_only_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse_Comprehensive/preserves_code_indentation (0.00s)
|
|
||||||
=== RUN TestCleanCodeResponse
|
|
||||||
=== RUN TestCleanCodeResponse/removes_markdown_fences
|
|
||||||
=== RUN TestCleanCodeResponse/removes_language_tag
|
|
||||||
=== RUN TestCleanCodeResponse/handles_no_fences
|
|
||||||
=== RUN TestCleanCodeResponse/preserves_internal_blank_lines
|
|
||||||
=== RUN TestCleanCodeResponse/trims_whitespace
|
|
||||||
--- PASS: TestCleanCodeResponse (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_markdown_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/removes_language_tag (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/handles_no_fences (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/preserves_internal_blank_lines (0.00s)
|
|
||||||
--- PASS: TestCleanCodeResponse/trims_whitespace (0.00s)
|
|
||||||
=== RUN TestStreamSilent
|
|
||||||
--- PASS: TestStreamSilent (0.00s)
|
|
||||||
=== RUN TestStream
|
|
||||||
foobar
|
|
||||||
--- PASS: TestStream (0.00s)
|
|
||||||
=== RUN TestStreamWithTemp
|
|
||||||
response
|
|
||||||
--- PASS: TestStreamWithTemp (0.00s)
|
|
||||||
=== RUN TestStreamDoneSignal
|
|
||||||
--- PASS: TestStreamDoneSignal (0.00s)
|
|
||||||
=== RUN TestStreamEmptyResponse
|
|
||||||
--- PASS: TestStreamEmptyResponse (0.00s)
|
|
||||||
=== RUN TestNewClient
|
|
||||||
--- PASS: TestNewClient (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/grok 1.017s
|
|
||||||
=== RUN TestDetectLanguage
|
|
||||||
=== RUN TestDetectLanguage/Go_file
|
|
||||||
=== RUN TestDetectLanguage/Python_file
|
|
||||||
=== RUN TestDetectLanguage/JavaScript_file
|
|
||||||
=== RUN TestDetectLanguage/JSX_file
|
|
||||||
=== RUN TestDetectLanguage/TypeScript_file
|
|
||||||
=== RUN TestDetectLanguage/TSX_file
|
|
||||||
=== RUN TestDetectLanguage/Rust_file
|
|
||||||
=== RUN TestDetectLanguage/Ruby_file
|
|
||||||
=== RUN TestDetectLanguage/Java_file
|
|
||||||
=== RUN TestDetectLanguage/C_file
|
|
||||||
=== RUN TestDetectLanguage/C++_file
|
|
||||||
=== RUN TestDetectLanguage/Header_file
|
|
||||||
=== RUN TestDetectLanguage/Shell_script
|
|
||||||
=== RUN TestDetectLanguage/Bash_script
|
|
||||||
=== RUN TestDetectLanguage/Unsupported_file
|
|
||||||
=== RUN TestDetectLanguage/No_extension
|
|
||||||
=== RUN TestDetectLanguage/Case_insensitive
|
|
||||||
--- PASS: TestDetectLanguage (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Go_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Python_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JavaScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/JSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TypeScript_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/TSX_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Rust_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Ruby_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Java_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/C++_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Header_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Shell_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Bash_script (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Unsupported_file (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/No_extension (0.00s)
|
|
||||||
--- PASS: TestDetectLanguage/Case_insensitive (0.00s)
|
|
||||||
=== RUN TestCheckLinterAvailable
|
|
||||||
=== RUN TestCheckLinterAvailable/go_command_should_be_available
|
|
||||||
linter_test.go:84: go should be available on system with Go installed: available=true
|
|
||||||
=== RUN TestCheckLinterAvailable/nonexistent_command
|
|
||||||
linter_test.go:84: nonexistent command should not be available: available=false
|
|
||||||
--- PASS: TestCheckLinterAvailable (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/go_command_should_be_available (0.00s)
|
|
||||||
--- PASS: TestCheckLinterAvailable/nonexistent_command (0.00s)
|
|
||||||
=== RUN TestFindAvailableLinter
|
|
||||||
=== RUN TestFindAvailableLinter/Go_language_should_find_a_linter
|
|
||||||
=== RUN TestFindAvailableLinter/Language_with_no_available_linters
|
|
||||||
--- PASS: TestFindAvailableLinter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Go_language_should_find_a_linter (0.00s)
|
|
||||||
--- PASS: TestFindAvailableLinter/Language_with_no_available_linters (0.00s)
|
|
||||||
=== RUN TestRunLinter
|
|
||||||
=== RUN TestRunLinter/Run_go_vet_on_valid_file
|
|
||||||
linter_test.go:179: go vet result: ExitCode=0, HasIssues=false, Output=""
|
|
||||||
=== RUN TestRunLinter/Run_nonexistent_linter
|
|
||||||
--- PASS: TestRunLinter (0.07s)
|
|
||||||
--- PASS: TestRunLinter/Run_go_vet_on_valid_file (0.07s)
|
|
||||||
--- PASS: TestRunLinter/Run_nonexistent_linter (0.00s)
|
|
||||||
=== RUN TestLintFile
|
|
||||||
=== RUN TestLintFile/Lint_valid_Go_file
|
|
||||||
=== RUN TestLintFile/Lint_nonexistent_file
|
|
||||||
=== RUN TestLintFile/Lint_unsupported_file_type
|
|
||||||
--- PASS: TestLintFile (0.20s)
|
|
||||||
--- PASS: TestLintFile/Lint_valid_Go_file (0.19s)
|
|
||||||
--- PASS: TestLintFile/Lint_nonexistent_file (0.00s)
|
|
||||||
--- PASS: TestLintFile/Lint_unsupported_file_type (0.00s)
|
|
||||||
=== RUN TestGetSupportedLanguages
|
|
||||||
--- PASS: TestGetSupportedLanguages (0.00s)
|
|
||||||
=== RUN TestLanguageStructure
|
|
||||||
--- PASS: TestLanguageStructure (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/linter 1.280s
|
|
||||||
=== RUN TestInit
|
|
||||||
=== RUN TestInit/default_level
|
|
||||||
=== RUN TestInit/debug_level
|
|
||||||
=== RUN TestInit/warn_level
|
|
||||||
=== RUN TestInit/error_level
|
|
||||||
=== RUN TestInit/invalid_level_defaults_to_info
|
|
||||||
--- PASS: TestInit (0.00s)
|
|
||||||
--- PASS: TestInit/default_level (0.00s)
|
|
||||||
--- PASS: TestInit/debug_level (0.00s)
|
|
||||||
--- PASS: TestInit/warn_level (0.00s)
|
|
||||||
--- PASS: TestInit/error_level (0.00s)
|
|
||||||
--- PASS: TestInit/invalid_level_defaults_to_info (0.00s)
|
|
||||||
=== RUN TestLogging
|
|
||||||
{"time":"2026-03-06T21:38:26.236151816Z","level":"DEBUG","msg":"test debug message","key":"value"}
|
|
||||||
{"time":"2026-03-06T21:38:26.236315178Z","level":"INFO","msg":"test info message","count":42}
|
|
||||||
{"time":"2026-03-06T21:38:26.236336913Z","level":"WARN","msg":"test warn message","enabled":true}
|
|
||||||
{"time":"2026-03-06T21:38:26.236352195Z","level":"ERROR","msg":"test error message","error":"something went wrong"}
|
|
||||||
--- PASS: TestLogging (0.00s)
|
|
||||||
=== RUN TestSetLevel
|
|
||||||
--- PASS: TestSetLevel (0.00s)
|
|
||||||
=== RUN TestWith
|
|
||||||
--- PASS: TestWith (0.00s)
|
|
||||||
=== RUN TestWithContext
|
|
||||||
=== RUN TestWithContext/without_init
|
|
||||||
=== RUN TestWithContext/with_init
|
|
||||||
--- PASS: TestWithContext (0.00s)
|
|
||||||
--- PASS: TestWithContext/without_init (0.00s)
|
|
||||||
--- PASS: TestWithContext/with_init (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/logger 1.011s
|
|
||||||
=== RUN TestExtractCodeBlocks
|
|
||||||
=== PAUSE TestExtractCodeBlocks
|
|
||||||
=== CONT TestExtractCodeBlocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Single_block
|
|
||||||
=== RUN TestExtractCodeBlocks/Multiple_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/No_blocks
|
|
||||||
=== RUN TestExtractCodeBlocks/Incomplete_block
|
|
||||||
--- PASS: TestExtractCodeBlocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Single_block (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Multiple_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/No_blocks (0.00s)
|
|
||||||
--- PASS: TestExtractCodeBlocks/Incomplete_block (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/recipe 1.009s
|
|
||||||
=== RUN TestVersionInfo
|
|
||||||
=== PAUSE TestVersionInfo
|
|
||||||
=== CONT TestVersionInfo
|
|
||||||
=== RUN TestVersionInfo/Version
|
|
||||||
=== PAUSE TestVersionInfo/Version
|
|
||||||
=== RUN TestVersionInfo/Commit
|
|
||||||
=== PAUSE TestVersionInfo/Commit
|
|
||||||
=== RUN TestVersionInfo/BuildDate
|
|
||||||
=== PAUSE TestVersionInfo/BuildDate
|
|
||||||
=== CONT TestVersionInfo/BuildDate
|
|
||||||
=== CONT TestVersionInfo/Version
|
|
||||||
=== CONT TestVersionInfo/Commit
|
|
||||||
--- PASS: TestVersionInfo (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/BuildDate (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Version (0.00s)
|
|
||||||
--- PASS: TestVersionInfo/Commit (0.00s)
|
|
||||||
PASS
|
|
||||||
ok gmgauthier.com/grokkit/internal/version 1.009s
|
|
||||||
Loading…
Reference in New Issue
Block a user