mirror of
https://github.com/gotify/server.git
synced 2026-09-06 15:57:32 +08:00
32 lines
766 B
Go
32 lines
766 B
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestRun(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
args []string
|
|
wantCode int
|
|
stdout string // substring expected on stdout
|
|
stderr string // substring expected on stderr
|
|
}{
|
|
{"version", []string{"version"}, 0, "Version: ", ""},
|
|
{"unknown command", []string{"bogus"}, 2, "", "unknown command"},
|
|
{"unknown flag", []string{"--nope"}, 2, "", "not defined"},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
var stdout, stderr bytes.Buffer
|
|
code := run(c.args, &stdout, &stderr)
|
|
assert.Equal(t, c.wantCode, code)
|
|
assert.Contains(t, stdout.String(), c.stdout)
|
|
assert.Contains(t, stderr.String(), c.stderr)
|
|
})
|
|
}
|
|
}
|