feat: add chain writer
This commit is contained in:
49
chain_test.go
Normal file
49
chain_test.go
Normal file
@@ -0,0 +1,49 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user