37 lines
869 B
Go
37 lines
869 B
Go
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
|
|
}
|