2019-02-24 18:05:37 +02:00
|
|
|
package summary_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
2019-03-04 13:04:31 +02:00
|
|
|
"testing"
|
|
|
|
|
2019-02-24 18:05:37 +02:00
|
|
|
"github.com/go-task/task/v2/internal/logger"
|
|
|
|
"github.com/go-task/task/v2/internal/summary"
|
|
|
|
"github.com/go-task/task/v2/internal/taskfile"
|
2019-03-04 13:04:31 +02:00
|
|
|
|
2019-02-24 18:05:37 +02:00
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
2019-02-24 18:10:59 +02:00
|
|
|
func TestPrintsDependenciesIfPresent(t *testing.T) {
|
2019-02-24 18:05:37 +02:00
|
|
|
buffer := &bytes.Buffer{}
|
|
|
|
l := logger.Logger{
|
|
|
|
Stdout: buffer,
|
|
|
|
Stderr: buffer,
|
|
|
|
Verbose: false,
|
|
|
|
}
|
|
|
|
task := &taskfile.Task{
|
|
|
|
Deps: []*taskfile.Dep{
|
|
|
|
{Task: "dep1"},
|
|
|
|
{Task: "dep2"},
|
|
|
|
{Task: "dep3"},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
summary.Print(&l, task)
|
|
|
|
|
2019-03-03 20:45:00 +02:00
|
|
|
assert.Contains(t, buffer.String(), "\ndependencies:\n - dep1\n - dep2\n - dep3\n")
|
2019-02-24 18:05:37 +02:00
|
|
|
}
|
|
|
|
|
2019-02-24 18:10:59 +02:00
|
|
|
func TestDoesNotPrintDependenciesIfMissing(t *testing.T) {
|
2019-02-24 18:05:37 +02:00
|
|
|
buffer := &bytes.Buffer{}
|
|
|
|
l := logger.Logger{
|
|
|
|
Stdout: buffer,
|
|
|
|
Stderr: buffer,
|
|
|
|
Verbose: false,
|
|
|
|
}
|
|
|
|
task := &taskfile.Task{
|
|
|
|
Deps: []*taskfile.Dep{},
|
|
|
|
}
|
|
|
|
|
|
|
|
summary.Print(&l, task)
|
|
|
|
|
|
|
|
assert.NotContains(t, buffer.String(), "dependencies:")
|
|
|
|
}
|
2019-02-24 18:10:59 +02:00
|
|
|
|
|
|
|
func TestPrintTaskName(t *testing.T) {
|
|
|
|
buffer := &bytes.Buffer{}
|
|
|
|
l := logger.Logger{
|
|
|
|
Stdout: buffer,
|
|
|
|
Stderr: buffer,
|
|
|
|
Verbose: false,
|
|
|
|
}
|
|
|
|
task := &taskfile.Task{
|
|
|
|
Task: "my-task-name",
|
|
|
|
}
|
|
|
|
|
|
|
|
summary.Print(&l, task)
|
|
|
|
|
|
|
|
assert.Contains(t, buffer.String(), "task: my-task-name\n")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPrintTaskCommandsIfPresent(t *testing.T) {
|
|
|
|
buffer := &bytes.Buffer{}
|
|
|
|
l := logger.Logger{
|
|
|
|
Stdout: buffer,
|
|
|
|
Stderr: buffer,
|
|
|
|
Verbose: false,
|
|
|
|
}
|
|
|
|
task := &taskfile.Task{
|
|
|
|
Cmds: []*taskfile.Cmd{
|
|
|
|
{Cmd: "command-1"},
|
|
|
|
{Cmd: "command-2"},
|
2019-02-24 18:23:31 +02:00
|
|
|
{Task: "task-1"},
|
2019-02-24 18:10:59 +02:00
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
summary.Print(&l, task)
|
|
|
|
|
|
|
|
assert.Contains(t, buffer.String(), "\ncommands:\n")
|
|
|
|
assert.Contains(t, buffer.String(), "\n - command-1\n")
|
|
|
|
assert.Contains(t, buffer.String(), "\n - command-2\n")
|
2019-02-24 18:23:31 +02:00
|
|
|
assert.Contains(t, buffer.String(), "\n - Task: task-1\n")
|
2019-02-24 18:10:59 +02:00
|
|
|
}
|
2019-02-24 18:12:22 +02:00
|
|
|
|
|
|
|
func TestDoesNotPrintCommandIfMissing(t *testing.T) {
|
|
|
|
buffer := &bytes.Buffer{}
|
|
|
|
l := logger.Logger{
|
|
|
|
Stdout: buffer,
|
|
|
|
Stderr: buffer,
|
|
|
|
Verbose: false,
|
|
|
|
}
|
|
|
|
task := &taskfile.Task{
|
|
|
|
Cmds: []*taskfile.Cmd{},
|
|
|
|
}
|
|
|
|
|
|
|
|
summary.Print(&l, task)
|
|
|
|
|
|
|
|
assert.NotContains(t, buffer.String(), "commands")
|
|
|
|
}
|
2019-02-24 18:20:29 +02:00
|
|
|
|
2019-02-24 18:29:03 +02:00
|
|
|
func TestLayout(t *testing.T) {
|
2019-02-24 18:20:29 +02:00
|
|
|
buffer := &bytes.Buffer{}
|
|
|
|
l := logger.Logger{
|
|
|
|
Stdout: buffer,
|
|
|
|
Stderr: buffer,
|
|
|
|
Verbose: false,
|
|
|
|
}
|
|
|
|
task := &taskfile.Task{
|
|
|
|
Task: "sample-task",
|
|
|
|
Summary: "line1\nline2\nline3\n",
|
|
|
|
Deps: []*taskfile.Dep{
|
|
|
|
{Task: "dependency"},
|
|
|
|
},
|
|
|
|
Cmds: []*taskfile.Cmd{
|
|
|
|
{Cmd: "command"},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
summary.Print(&l, task)
|
|
|
|
|
2019-02-24 18:25:03 +02:00
|
|
|
assert.Equal(t, expectedOutput(), buffer.String())
|
|
|
|
}
|
|
|
|
|
|
|
|
func expectedOutput() string {
|
2019-02-24 18:28:06 +02:00
|
|
|
expected := `task: sample-task
|
|
|
|
|
|
|
|
line1
|
|
|
|
line2
|
|
|
|
line3
|
|
|
|
|
|
|
|
dependencies:
|
|
|
|
- dependency
|
|
|
|
|
|
|
|
commands:
|
|
|
|
- command
|
|
|
|
`
|
2019-02-24 18:25:03 +02:00
|
|
|
return expected
|
2019-02-24 18:20:29 +02:00
|
|
|
}
|
2019-02-24 19:20:59 +02:00
|
|
|
|
|
|
|
func TestPrintDescriptionAsFallback(t *testing.T) {
|
|
|
|
buffer := &bytes.Buffer{}
|
|
|
|
l := logger.Logger{
|
|
|
|
Stdout: buffer,
|
|
|
|
Stderr: buffer,
|
|
|
|
Verbose: false,
|
|
|
|
}
|
|
|
|
taskWithoutSummary := &taskfile.Task{
|
|
|
|
Desc: "description",
|
|
|
|
}
|
|
|
|
|
|
|
|
taskWithSummary := &taskfile.Task{
|
|
|
|
Desc: "description",
|
|
|
|
Summary: "summary",
|
|
|
|
}
|
2019-02-24 19:26:16 +02:00
|
|
|
taskWithoutSummaryOrDescription := &taskfile.Task{}
|
2019-02-24 19:20:59 +02:00
|
|
|
|
|
|
|
summary.Print(&l, taskWithoutSummary)
|
|
|
|
assert.Contains(t, buffer.String(), "description")
|
|
|
|
|
|
|
|
buffer.Reset()
|
|
|
|
summary.Print(&l, taskWithSummary)
|
|
|
|
assert.NotContains(t, buffer.String(), "description")
|
|
|
|
|
2019-02-24 19:26:16 +02:00
|
|
|
buffer.Reset()
|
|
|
|
summary.Print(&l, taskWithoutSummaryOrDescription)
|
|
|
|
assert.Contains(t, buffer.String(), "\n(task does not have description or summary)\n")
|
|
|
|
|
2019-02-24 19:20:59 +02:00
|
|
|
}
|