diff --git a/task_test.go b/task_test.go index 40cf95c3..d4f820b1 100644 --- a/task_test.go +++ b/task_test.go @@ -1218,3 +1218,32 @@ Bye! t.Log(buff.String()) assert.Equal(t, strings.TrimSpace(buff.String()), expectedOutputOrder) } + +func TestIncludedVars(t *testing.T) { + const dir = "testdata/include_with_vars" + var buff bytes.Buffer + e := task.Executor{ + Dir: dir, + Stdout: &buff, + Stderr: &buff, + } + assert.NoError(t, e.Setup()) + + expectedOutputOrder := strings.TrimSpace(` +task: [included1:task1] echo "VAR_1 is included1-var1" +VAR_1 is included1-var1 +task: [included1:task1] echo "VAR_2 is incldued-default-var2" +VAR_2 is incldued-default-var2 +task: [included2:task1] echo "VAR_1 is included2-var1" +VAR_1 is included2-var1 +task: [included2:task1] echo "VAR_2 is incldued-default-var2" +VAR_2 is incldued-default-var2 +task: [included3:task1] echo "VAR_1 is included-default-var1" +VAR_1 is included-default-var1 +task: [included3:task1] echo "VAR_2 is incldued-default-var2" +VAR_2 is incldued-default-var2 +`) + assert.NoError(t, e.Run(context.Background(), taskfile.Call{Task: "task1"})) + t.Log(buff.String()) + assert.Equal(t, strings.TrimSpace(buff.String()), expectedOutputOrder) +} diff --git a/testdata/include_with_vars/Taskfile.yml b/testdata/include_with_vars/Taskfile.yml new file mode 100644 index 00000000..295e3c2b --- /dev/null +++ b/testdata/include_with_vars/Taskfile.yml @@ -0,0 +1,20 @@ +version: "3" + +includes: + included1: + taskfile: include/Taskfile.include.yml + vars: + VAR_1: included1-var1 + included2: + taskfile: include/Taskfile.include.yml + vars: + VAR_1: included2-var1 + included3: + taskfile: include/Taskfile.include.yml + +tasks: + task1: + cmds: + - task: included1:task1 + - task: included2:task1 + - task: included3:task1 \ No newline at end of file diff --git a/testdata/include_with_vars/include/Taskfile.include.yml b/testdata/include_with_vars/include/Taskfile.include.yml new file mode 100644 index 00000000..6461d9ce --- /dev/null +++ b/testdata/include_with_vars/include/Taskfile.include.yml @@ -0,0 +1,11 @@ +version: "3" + +vars: + VAR_1: included-default-var1 + VAR_2: incldued-default-var2 + +tasks: + task1: + cmds: + - echo "VAR_1 is {{.VAR_1}}" + - echo "VAR_2 is {{.VAR_2}}" \ No newline at end of file