mirror of https://github.com/docker/cli.git
60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package formatter
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
"github.com/docker/docker/api/types/container"
|
|
"github.com/docker/docker/pkg/archive"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestDiffContextFormatWrite(t *testing.T) {
|
|
// Check default output format (verbose and non-verbose mode) for table headers
|
|
cases := []struct {
|
|
context Context
|
|
expected string
|
|
}{
|
|
{
|
|
Context{Format: NewDiffFormat("table")},
|
|
`CHANGE TYPE PATH
|
|
C /var/log/app.log
|
|
A /usr/app/app.js
|
|
D /usr/app/old_app.js
|
|
`,
|
|
},
|
|
{
|
|
Context{Format: NewDiffFormat("table {{.Path}}")},
|
|
`PATH
|
|
/var/log/app.log
|
|
/usr/app/app.js
|
|
/usr/app/old_app.js
|
|
`,
|
|
},
|
|
{
|
|
Context{Format: NewDiffFormat("{{.Type}}: {{.Path}}")},
|
|
`C: /var/log/app.log
|
|
A: /usr/app/app.js
|
|
D: /usr/app/old_app.js
|
|
`,
|
|
},
|
|
}
|
|
|
|
diffs := []container.ContainerChangeResponseItem{
|
|
{archive.ChangeModify, "/var/log/app.log"},
|
|
{archive.ChangeAdd, "/usr/app/app.js"},
|
|
{archive.ChangeDelete, "/usr/app/old_app.js"},
|
|
}
|
|
|
|
for _, testcase := range cases {
|
|
out := bytes.NewBufferString("")
|
|
testcase.context.Output = out
|
|
err := DiffWrite(testcase.context, diffs)
|
|
if err != nil {
|
|
assert.EqualError(t, err, testcase.expected)
|
|
} else {
|
|
assert.Equal(t, testcase.expected, out.String())
|
|
}
|
|
}
|
|
}
|