test: rewrite functional tests for full CLI coverage
Consolidate all tests into functional_test.go — remove duplicate new_commands_test.go. Replace SDK-only tests with actual CLI binary invocations. Add missing coverage for: issue list, issue view, issue comment, issue create, issue edit title, repo view, repo list, release view, --json flag on issue list/view and pr list. All tests now use -R flag consistently. 35 pass, 0 fail, 3 expected skips (pr view/diff need PRs, clone needs auth).
This commit is contained in:
parent
95da06c003
commit
7c0dcc8696
2 changed files with 892 additions and 609 deletions
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/sdk/gitea"
|
"code.gitea.io/sdk/gitea"
|
||||||
|
|
@ -295,3 +296,39 @@ func (env *TestEnv) RunCLI(args ...string) *CLIResult {
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// runCLIWithStdin executes the CLI binary with the given args and pipes input to stdin.
|
||||||
|
func (env *TestEnv) runCLIWithStdin(input string, args ...string) *CLIResult {
|
||||||
|
cmd := exec.Command(env.GetBinaryPath(), args...)
|
||||||
|
cmd.Env = os.Environ()
|
||||||
|
cmd.Stdin = strings.NewReader(input)
|
||||||
|
|
||||||
|
var stdout, stderr bytes.Buffer
|
||||||
|
cmd.Stdout = &stdout
|
||||||
|
cmd.Stderr = &stderr
|
||||||
|
|
||||||
|
err := cmd.Run()
|
||||||
|
exitCode := 0
|
||||||
|
if err != nil {
|
||||||
|
if exitErr, ok := err.(*exec.ExitError); ok {
|
||||||
|
exitCode = exitErr.ExitCode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result := &CLIResult{
|
||||||
|
Stdout: stdout.String(),
|
||||||
|
Stderr: stderr.String(),
|
||||||
|
ExitCode: exitCode,
|
||||||
|
}
|
||||||
|
|
||||||
|
env.T.Logf("Command: %s %v", env.GetBinaryPath(), args)
|
||||||
|
env.T.Logf("Exit code: %d", exitCode)
|
||||||
|
if stdout.Len() > 0 {
|
||||||
|
env.T.Logf("Stdout:\n%s", result.Stdout)
|
||||||
|
}
|
||||||
|
if stderr.Len() > 0 {
|
||||||
|
env.T.Logf("Stderr:\n%s", result.Stderr)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue