Add tests for root command

This commit is contained in:
Christian Muehlhaeuser 2020-01-08 21:51:22 +01:00
parent 85c0cde9c7
commit 3b38e3c2b3
No known key found for this signature in database
GPG key ID: 3CF9FA45CA1EBB7E

64
glow_test.go Normal file
View file

@ -0,0 +1,64 @@
package main
import (
"bytes"
"testing"
)
func TestGlowSources(t *testing.T) {
tt := []string{
"",
".",
"README.md",
"github.com/charmbracelet/glow",
"https://github.com/charmbracelet/glow",
}
for _, v := range tt {
buf := &bytes.Buffer{}
err := executeArg(rootCmd, v, buf)
if err != nil {
t.Errorf("Error during execution (args: %s): %v", v, err)
}
if buf.Len() == 0 {
t.Errorf("Output buffer should not be empty (args: %s)", v)
}
}
}
func TestGlowFlags(t *testing.T) {
tt := []struct {
args []string
check func() bool
}{
{
args: []string{"-p"},
check: func() bool {
return pager
},
},
{
args: []string{"-s", "light"},
check: func() bool {
return style == "light"
},
},
{
args: []string{"-w", "40"},
check: func() bool {
return width == 40
},
},
}
for _, v := range tt {
err := rootCmd.ParseFlags(v.args)
if err != nil {
t.Fatal(err)
}
if !v.check() {
t.Errorf("Parsing flag failed: %s", v.args)
}
}
}