66 "io"
77 "testing"
88
9+ "github.com/go-task/task/v3/internal/templater"
10+ "github.com/go-task/task/v3/taskfile"
911 "github.com/stretchr/testify/assert"
1012
1113 "github.com/go-task/task/v3/internal/output"
@@ -14,7 +16,7 @@ import (
1416func TestInterleaved (t * testing.T ) {
1517 var b bytes.Buffer
1618 var o output.Output = output.Interleaved {}
17- var w = o .WrapWriter (& b , "" )
19+ var w = o .WrapWriter (& b , "" , nil )
1820
1921 fmt .Fprintln (w , "foo\n bar" )
2022 assert .Equal (t , "foo\n bar\n " , b .String ())
@@ -25,7 +27,7 @@ func TestInterleaved(t *testing.T) {
2527func TestGroup (t * testing.T ) {
2628 var b bytes.Buffer
2729 var o output.Output = output.Group {}
28- var w = o .WrapWriter (& b , "" ).(io.WriteCloser )
30+ var w = o .WrapWriter (& b , "" , nil ).(io.WriteCloser )
2931
3032 fmt .Fprintln (w , "foo\n bar" )
3133 assert .Equal (t , "" , b .String ())
@@ -35,10 +37,43 @@ func TestGroup(t *testing.T) {
3537 assert .Equal (t , "foo\n bar\n baz\n " , b .String ())
3638}
3739
40+ func TestGroupWithBeginEnd (t * testing.T ) {
41+ tmpl := templater.Templater {
42+ Vars : & taskfile.Vars {
43+ Keys : []string {"VAR1" },
44+ Mapping : map [string ]taskfile.Var {
45+ "VAR1" : {Static : "example-value" },
46+ },
47+ },
48+ }
49+
50+ var o output.Output = output.Group {
51+ Begin : "::group::{{ .VAR1 }}" ,
52+ End : "::endgroup::" ,
53+ }
54+ t .Run ("simple" , func (t * testing.T ) {
55+ var b bytes.Buffer
56+ var w = o .WrapWriter (& b , "" , & tmpl ).(io.WriteCloser )
57+
58+ fmt .Fprintln (w , "foo\n bar" )
59+ assert .Equal (t , "" , b .String ())
60+ fmt .Fprintln (w , "baz" )
61+ assert .Equal (t , "" , b .String ())
62+ assert .NoError (t , w .Close ())
63+ assert .Equal (t , "::group::example-value\n foo\n bar\n baz\n ::endgroup::\n " , b .String ())
64+ })
65+ t .Run ("no output" , func (t * testing.T ) {
66+ var b bytes.Buffer
67+ var w = o .WrapWriter (& b , "" , & tmpl ).(io.WriteCloser )
68+ assert .NoError (t , w .Close ())
69+ assert .Equal (t , "" , b .String ())
70+ })
71+ }
72+
3873func TestPrefixed (t * testing.T ) {
3974 var b bytes.Buffer
4075 var o output.Output = output.Prefixed {}
41- var w = o .WrapWriter (& b , "prefix" ).(io.WriteCloser )
76+ var w = o .WrapWriter (& b , "prefix" , nil ).(io.WriteCloser )
4277
4378 t .Run ("simple use cases" , func (t * testing.T ) {
4479 b .Reset ()
0 commit comments