github.com/kamilsk/grafaman@v1.0.0-beta3.0.20201207211242-3e0d02dd84ce/main_test.go (about) 1 package main 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 "go.octolab.org/safe" 10 ) 11 12 func TestExecution(t *testing.T) { 13 t.Run("success", func(t *testing.T) { 14 exit = func(code int) { assert.Equal(t, 0, code) } 15 stderr, stdout = ioutil.Discard, ioutil.Discard 16 os.Args = []string{"root", "version"} 17 main() 18 }) 19 t.Run("failure", func(t *testing.T) { 20 exit = func(code int) { assert.Equal(t, 1, code) } 21 stderr, stdout = ioutil.Discard, ioutil.Discard 22 os.Args = []string{"root", "unknown"} 23 main() 24 }) 25 t.Run("shutdown with panic", func(t *testing.T) { 26 exit = func(code int) { assert.Equal(t, 1, code) } 27 stderr, stdout = ioutil.Discard, ioutil.Discard 28 safe.Do(func() error { panic("test") }, shutdown) 29 }) 30 }