debian-forge-composer/cmd/osbuild-worker/jobimpl-osbuild_test.go
Michael Vogt 919b423953 osbuild-worker: tweak error to not include a \n for a failed stage
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.
2024-07-11 09:33:40 +02:00

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())
}
}