feat: allow for stdout to be buffered on each command (#2335)

* feat: add preRun func to version to restore stdout

Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com>

* test: add test to capture version in output

Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com>

* change stdout buffering to log to be opt-in per command

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix tests

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

---------

Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com>
Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
Co-authored-by: Alex Goodman <wagoodman@users.noreply.github.com>
This commit is contained in:
Christopher Angelo Phillips
2023-11-17 14:14:13 -05:00
committed by GitHub
co-authored by Alex Goodman
parent 1c787f436f
commit ba80e490c2
11 changed files with 62 additions and 75 deletions
+29
View File
@@ -0,0 +1,29 @@
package cli
import (
"testing"
)
func TestVersionCmdPrintsToStdout(t *testing.T) {
tests := []struct {
name string
env map[string]string
assertions []traitAssertion
}{
{
name: "version command prints to stdout",
assertions: []traitAssertion{
assertInOutput("Version:"),
},
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
pkgCmd, pkgsStdout, pkgsStderr := runSyft(t, test.env, "version")
for _, traitFn := range test.assertions {
traitFn(t, pkgsStdout, pkgsStderr, pkgCmd.ProcessState.ExitCode())
}
})
}
}