mesh/repo-check head db62e82e26d7 merged into trunk 47ab8cd3cf45 beside mesh-catalog#435@7c5d11e5 — pass: its merge-check.sh passed
mesh/merge-gate head db62e82e26d7 merged into trunk 47ab8cd3cf45 — pass: group feat/r4c9-image-build composed: every machine composes with the change as it…
mesh/delivery delivered
mesh/delivery-group group feat/r4c9-image-build merged: every member is merged
mesh/check pass db62e82e26d7 on 2b635e2138ae | unit 366 run 0 kept | int 405 run 0 kept | clone 9.2s unit 191ms int 6.7s+44s | composition not yet run
42 lines
1.4 KiB
Go
42 lines
1.4 KiB
Go
package build
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"testing"
|
|
|
|
"git.novox.be/novox/mesh-sdk/go/delivery"
|
|
)
|
|
|
|
// result reads a captured step value of mesh-build-image (testdata/captured/README) and returns its result.
|
|
func captured(t *testing.T, name string) json.RawMessage {
|
|
t.Helper()
|
|
raw, err := os.ReadFile("testdata/captured/" + name)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var step delivery.Step
|
|
if err := json.Unmarshal(raw, &step); err != nil {
|
|
t.Fatalf("%s: %v", name, err)
|
|
}
|
|
if step.State != delivery.StepPassed || len(step.Result) == 0 {
|
|
t.Fatalf("%s: state %q, result %s, want a passed step with a result", name, step.State, step.Result)
|
|
}
|
|
return step.Result
|
|
}
|
|
|
|
func TestCapturedImageStepsDecodeWithTheBuildersOwnTypes(t *testing.T) { // review r2, mesh-catalog 2; ADR 0487 clause 1
|
|
var f fetchResult
|
|
if err := json.Unmarshal(captured(t, "fetch.json"), &f); err != nil || f.Workspace == "" {
|
|
t.Errorf("fetch = %+v, %v, want a workspace (the field the builder reads)", f, err)
|
|
}
|
|
var trunk buildResult
|
|
if err := json.Unmarshal(captured(t, "build-trunk.json"), &trunk); err != nil || trunk.Digest == "" || trunk.Reference == "" {
|
|
t.Errorf("trunk build = %+v, %v, want a digest and a reference", trunk, err)
|
|
}
|
|
var cand buildResult
|
|
if err := json.Unmarshal(captured(t, "build-candidate.json"), &cand); err != nil || cand.Digest == "" || cand.Reference != "" {
|
|
t.Errorf("candidate build = %+v, %v, want a digest and no reference", cand, err)
|
|
}
|
|
}
|