github.com/aneshas/cli@v0.0.0-20180104210444-aec958fa47db/init_test.go (about) 1 package main 2 3 import ( 4 "flag" 5 "io/ioutil" 6 "os" 7 "testing" 8 9 "github.com/fnproject/cli/langs" 10 "github.com/urfave/cli" 11 yaml "gopkg.in/yaml.v2" 12 ) 13 14 func TestInit(t *testing.T) { 15 16 testname := "test-init" 17 testdir, err := ioutil.TempDir("", testname) 18 if err != nil { 19 t.Fatalf("ERROR: Failed to make tmp test directory: err: %v", err) 20 } 21 defer os.RemoveAll(testdir) 22 23 err = os.Chdir(testdir) 24 if err != nil { 25 t.Fatalf("ERROR: Failed to cd to tmp test directory: err: %v", err) 26 } 27 28 helper := &langs.GoLangHelper{} 29 helper.GenerateBoilerplate() 30 31 app := newFn() 32 err = app.Command("init").Run(cli.NewContext(app, &flag.FlagSet{}, nil)) 33 if err != nil { 34 t.Fatalf("ERROR: Failed run `init` command: err: %v", err) 35 } 36 37 ffname := "func.yaml" 38 b, err := ioutil.ReadFile(ffname) 39 if err != nil { 40 t.Fatalf("could not open %s for parsing. Error: %v", ffname, err) 41 } 42 ff := &funcfile{} 43 err = yaml.Unmarshal(b, ff) 44 if err != nil { 45 t.Fatalf("could not parse %s. Error: %v", ffname, err) 46 } 47 // should have version, runtime and entrypoint 48 if ff.Version == "" { 49 t.Errorf("no version found in generated %s", ffname) 50 } 51 if ff.Runtime == "" { 52 t.Errorf("no runtime found in generated %s", ffname) 53 } 54 if ff.Entrypoint == "" { 55 t.Errorf("no entrypoint found in generated %s", ffname) 56 } 57 }