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 {
|
switch mode {
|
||||||
case OutputJSON:
|
case OutputJSON:
|
||||||
if quiet {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
enc := json.NewEncoder(w)
|
enc := json.NewEncoder(w)
|
||||||
enc.SetIndent("", " ")
|
enc.SetIndent("", " ")
|
||||||
return enc.Encode(res)
|
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(), "exit=1")
|
||||||
require.Contains(t, buf.String(), "error: boom")
|
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)
|
fmt.Fprintf(&script, "OUTPUT_NAME=%s/%s-%s-%s\n", buildDir, binaryName, targetGOOS, targetGOARCH)
|
||||||
script.WriteString("export CGO_ENABLED=1\n")
|
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, "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()
|
return script.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,8 @@ func TestBuildAllTaskPreservesGoEnvironmentForwarding(t *testing.T) {
|
||||||
require.NotContains(t, script, "if [ \"$GOOS\" != \"linux\" ]; then")
|
require.NotContains(t, script, "if [ \"$GOOS\" != \"linux\" ]; then")
|
||||||
require.Contains(t, script, "CGO_ENABLED=1")
|
require.Contains(t, script, "CGO_ENABLED=1")
|
||||||
require.NotContains(t, script, "CGO_BUILD=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, " ")
|
joinedEnv := strings.Join(fake.Calls[0].Env, " ")
|
||||||
require.Contains(t, joinedEnv, "GOOS=linux")
|
require.Contains(t, joinedEnv, "GOOS=linux")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue