Skip to content

Commit

Permalink
feat: tests for wildcard matching
Browse files Browse the repository at this point in the history
  • Loading branch information
pd93 committed Jan 27, 2024
1 parent e0674bf commit fadeeae
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
49 changes: 49 additions & 0 deletions task_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2249,3 +2249,52 @@ func TestFor(t *testing.T) {
})
}
}

func TestWildcard(t *testing.T) {
tests := []struct {
name string
expectedOutput string
wantErr bool
}{
{
name: "wildcard-foo",
expectedOutput: "Hello foo\n",
},
{
name: "foo-wildcard-bar",
expectedOutput: "Hello foo bar\n",
},
{
name: "start-foo",
expectedOutput: "Starting foo\n",
},
{
name: "matches-exactly-*",
expectedOutput: "I don't consume matches: \n",
},
{
name: "no-match",
wantErr: true,
},
}

for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
var buff bytes.Buffer
e := task.Executor{
Dir: "testdata/wildcards",
Stdout: &buff,
Stderr: &buff,
Silent: true,
Force: true,
}
require.NoError(t, e.Setup())
if test.wantErr {
require.Error(t, e.Run(context.Background(), &ast.Call{Task: test.name}))
return
}
require.NoError(t, e.Run(context.Background(), &ast.Call{Task: test.name}))
assert.Equal(t, test.expectedOutput, buff.String())
})
}
}
5 changes: 5 additions & 0 deletions testdata/wildcards/Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ tasks:
cmds:
- echo "Hello {{index .MATCH 0}} {{index .MATCH 1}}"

# Matches is empty when you call the task name exactly (i.e. `task matches-exactly-*`)
matches-exactly-*:
cmds:
- "echo \"I don't consume matches: {{.MATCH}}\""

start-*:
vars:
SERVICE: "{{index .MATCH 0}}"
Expand Down

0 comments on commit fadeeae

Please sign in to comment.