package cmd import ( "io/ioutil" "os" "path/filepath" "testing" "github.com/stretchr/testify/require" ) func TestInit(t *testing.T) { var folder = mktemp(t) var cmd = newInitCmd().cmd var path = filepath.Join(folder, "foo.yaml") cmd.SetArgs([]string{"-f", path}) require.NoError(t, cmd.Execute()) require.FileExists(t, path) } func TestInitFileExists(t *testing.T) { var folder = mktemp(t) var cmd = newInitCmd().cmd var path = filepath.Join(folder, "twice.yaml") cmd.SetArgs([]string{"-f", path}) require.NoError(t, cmd.Execute()) require.EqualError(t, cmd.Execute(), "open "+path+": file exists") require.FileExists(t, path) } func TestInitFileError(t *testing.T) { var folder = mktemp(t) var cmd = newInitCmd().cmd var path = filepath.Join(folder, "nope.yaml") require.NoError(t, os.Chmod(folder, 0000)) cmd.SetArgs([]string{"-f", path}) require.EqualError(t, cmd.Execute(), "open "+path+": permission denied") } func mktemp(t *testing.T) string { folder, err := ioutil.TempDir("", "") require.NoError(t, err) return folder }