package scriptorium import ( "context" "testing" "gitea.maximumdirect.net/eric/scriptorium/internal/domain" ) func TestPublicArtifactReaderAdapterCopiesBody(t *testing.T) { reader := internalArtifactReaderFake{ artifact: &Artifact{Body: []byte("original")}, } adapter := publicArtifactReaderAdapter{reader: &reader} artifact, err := adapter.Read(context.Background(), domain.ArtifactRef{ Type: domain.ArtifactRefInline, URI: "memory://input", Body: "input", }) if err != nil { t.Fatalf("read artifact: %v", err) } artifact.Body[0] = 'X' if got := string(reader.artifact.Body); got != "original" { t.Fatalf("reader artifact body was mutated: %q", got) } } type internalArtifactReaderFake struct { artifact *Artifact } func (r *internalArtifactReaderFake) Read(context.Context, ArtifactRef) (*Artifact, error) { return r.artifact, nil }