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) } }