test(format): enhance JSON rendering to respect quiet mode and add tests for output validation
This commit is contained in:
parent
623c28f6dd
commit
407d6cdc24
4 changed files with 23 additions and 4 deletions
|
|
@ -61,9 +61,6 @@ func Render(w io.Writer, mode OutputMode, res TaskResult, quiet bool) error {
|
|||
}
|
||||
switch mode {
|
||||
case OutputJSON:
|
||||
if quiet {
|
||||
return nil
|
||||
}
|
||||
enc := json.NewEncoder(w)
|
||||
enc.SetIndent("", " ")
|
||||
return enc.Encode(res)
|
||||
|
|
|
|||
|
|
@ -110,3 +110,23 @@ func TestRenderTextHonorsQuietOnlyForSuccess(t *testing.T) {
|
|||
require.Contains(t, buf.String(), "exit=1")
|
||||
require.Contains(t, buf.String(), "error: boom")
|
||||
}
|
||||
|
||||
func TestRenderJSONHonorsQuietOnlyForSuccess(t *testing.T) {
|
||||
buf := &bytes.Buffer{}
|
||||
successResult := TaskResult{Task: "run", ExitCode: 0, DurationMS: 1, Success: true, Error: "ok"}
|
||||
require.NoError(t, Render(buf, OutputJSON, successResult, true))
|
||||
require.Equal(t, "", buf.String())
|
||||
|
||||
buf.Reset()
|
||||
failureResult := TaskResult{Task: "run", ExitCode: 1, DurationMS: 1, Success: false, Error: "boom", Stderr: "bad"}
|
||||
require.NoError(t, Render(buf, OutputJSON, failureResult, true))
|
||||
require.NotEqual(t, "", buf.String())
|
||||
|
||||
decoded := TaskResult{}
|
||||
require.NoError(t, json.NewDecoder(buf).Decode(&decoded))
|
||||
require.Equal(t, "run", decoded.Task)
|
||||
require.Equal(t, "boom", decoded.Error)
|
||||
require.Equal(t, "bad", decoded.Stderr)
|
||||
require.Equal(t, 1, decoded.ExitCode)
|
||||
require.False(t, decoded.Success)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -486,7 +486,7 @@ func buildAllScript(c *app.Context) string {
|
|||
fmt.Fprintf(&script, "OUTPUT_NAME=%s/%s-%s-%s\n", buildDir, binaryName, targetGOOS, targetGOARCH)
|
||||
script.WriteString("export CGO_ENABLED=1\n")
|
||||
fmt.Fprintf(&script, "GOOS=$GOOS GOARCH=$GOARCH CGO_ENABLED=$CGO_ENABLED $GO build $GOFLAGS %s -o ${OUTPUT_NAME} ./%s\n", ldFlags, cmdDir)
|
||||
fmt.Fprintf(&script, "ln -sf ./%s %s/%s\n", "${OUTPUT_NAME}", buildDir, binaryName)
|
||||
fmt.Fprintf(&script, "ln -sf %s-%s-%s %s/%s\n", binaryName, targetGOOS, targetGOARCH, buildDir, binaryName)
|
||||
return script.String()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -116,6 +116,8 @@ func TestBuildAllTaskPreservesGoEnvironmentForwarding(t *testing.T) {
|
|||
require.NotContains(t, script, "if [ \"$GOOS\" != \"linux\" ]; then")
|
||||
require.Contains(t, script, "CGO_ENABLED=1")
|
||||
require.NotContains(t, script, "CGO_BUILD=1")
|
||||
require.Contains(t, script, "ln -sf dragonscale-linux-sparc64 bin/dragonscale")
|
||||
require.NotContains(t, script, "ln -sf ./bin/dragonscale-linux-sparc64 bin/dragonscale")
|
||||
|
||||
joinedEnv := strings.Join(fake.Calls[0].Env, " ")
|
||||
require.Contains(t, joinedEnv, "GOOS=linux")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue