12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package formatter
- import (
- "bytes"
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func TestStackContextWrite(t *testing.T) {
- cases := []struct {
- context Context
- expected string
- }{
- // Errors
- {
- Context{Format: "{{InvalidFunction}}"},
- `Template parsing error: template: :1: function "InvalidFunction" not defined
- `,
- },
- {
- Context{Format: "{{nil}}"},
- `Template parsing error: template: :1:2: executing "" at <nil>: nil is not a command
- `,
- },
- // Table format
- {
- Context{Format: NewStackFormat("table")},
- `NAME SERVICES
- baz 2
- bar 1
- `,
- },
- {
- Context{Format: NewStackFormat("table {{.Name}}")},
- `NAME
- baz
- bar
- `,
- },
- // Custom Format
- {
- Context{Format: NewStackFormat("{{.Name}}")},
- `baz
- bar
- `,
- },
- }
- stacks := []*Stack{
- {Name: "baz", Services: 2},
- {Name: "bar", Services: 1},
- }
- for _, testcase := range cases {
- out := bytes.NewBufferString("")
- testcase.context.Output = out
- err := StackWrite(testcase.context, stacks)
- if err != nil {
- assert.Error(t, err, testcase.expected)
- } else {
- assert.Equal(t, out.String(), testcase.expected)
- }
- }
- }
|