Small followup for https://github.com/osbuild/osbuild-composer/pull/4113#discussion_r1670063775 Given that the failed stage is a relatively short string the `\n` seems unneccessary and quotes are enough.
80 lines
1.9 KiB
Go
80 lines
1.9 KiB
Go
package main_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/osbuild/images/pkg/osbuild"
|
|
|
|
main "github.com/osbuild/osbuild-composer/cmd/osbuild-worker"
|
|
)
|
|
|
|
func TestMakeJobErrorFromOsbuildOutput(t *testing.T) {
|
|
tests := []struct {
|
|
inputData *osbuild.Result
|
|
expected string
|
|
}{
|
|
{
|
|
inputData: &osbuild.Result{
|
|
Success: false,
|
|
Log: map[string]osbuild.PipelineResult{
|
|
"fake-os": []osbuild.StageResult{
|
|
{
|
|
Type: "good-stage",
|
|
Success: true,
|
|
Output: "good-output",
|
|
},
|
|
{
|
|
Type: "bad-stage",
|
|
Success: false,
|
|
Output: "bad-failure",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
expected: `Code: 10, Reason: osbuild build failed in stage: "bad-stage", Details: []`,
|
|
},
|
|
{
|
|
inputData: &osbuild.Result{
|
|
Success: false,
|
|
Log: map[string]osbuild.PipelineResult{
|
|
"fake-os": []osbuild.StageResult{},
|
|
},
|
|
},
|
|
expected: `Code: 10, Reason: osbuild build failed, Details: []`,
|
|
},
|
|
{
|
|
inputData: &osbuild.Result{
|
|
Error: json.RawMessage("some_osbuild_error"),
|
|
Success: false,
|
|
Log: map[string]osbuild.PipelineResult{
|
|
"fake-os": []osbuild.StageResult{},
|
|
},
|
|
},
|
|
expected: `Code: 10, Reason: osbuild build failed, Details: [osbuild error: some_osbuild_error]`,
|
|
},
|
|
{
|
|
inputData: &osbuild.Result{
|
|
Errors: []osbuild.ValidationError{
|
|
{
|
|
Message: "validation error message",
|
|
Path: []string{"error path"},
|
|
},
|
|
},
|
|
Success: false,
|
|
Log: map[string]osbuild.PipelineResult{
|
|
"fake-os": []osbuild.StageResult{},
|
|
},
|
|
},
|
|
expected: `Code: 10, Reason: osbuild build failed, Details: [manifest validation error: {validation error message [error path]}]`,
|
|
},
|
|
}
|
|
for _, testData := range tests {
|
|
fakeOsbuildResult := testData.inputData
|
|
|
|
wce := main.MakeJobErrorFromOsbuildOutput(fakeOsbuildResult)
|
|
require.Equal(t, testData.expected, wce.String())
|
|
}
|
|
}
|