Files
script/chain_test.go
2025-10-17 23:24:16 +03:00

50 lines
908 B
Go

package script
import (
"context"
"slices"
"testing"
)
func TestChainProcessor(t *testing.T) {
p := func(_ context.Context, in []string) ([]string, error) {
in[0] = in[0] + in[0]
return in, nil
}
chain := ChainProcessor(p, p, p)
in := []string{"a"}
want := []string{"aaaaaaaa"}
res, err := chain(t.Context(), in)
if err != nil {
t.Fatal(err)
}
if !slices.Equal(res, want) {
t.Fatalf("slices are not equal, have: %+v, want: %+v", res, want)
}
}
func TestChainWriter(t *testing.T) {
w1 := NewMemWriter()
w2 := NewMemWriter()
w := ChainWriter(w1, w2)
in := []string{"a"}
if err := w.Write(in); err != nil {
t.Fatal(err)
}
if !slices.Equal(w1.Output()[0], in) {
t.Fatalf("w1 slices are not equal, have: %+v, want: %+v", w1.Output()[0], in)
}
if !slices.Equal(w2.Output()[0], in) {
t.Fatalf("w2 slices are not equal, have: %+v, want: %+v", w2.Output()[0], in)
}
}