github.com/soypat/vectytemplater@v0.0.0-20220501050640-d40b24e35168/main_test.go (about) 1 package main 2 3 import ( 4 "flag" 5 "os" 6 "testing" 7 ) 8 9 func TestMain(t *testing.M) { 10 os.Mkdir("testdata", 0777) 11 err := os.Chdir("testdata") 12 if err != nil { 13 panic(err.Error()) 14 } 15 defer func() { 16 err := os.RemoveAll("testdata") 17 if err != nil { 18 panic(err.Error()) 19 } 20 }() 21 code := t.Run() 22 if code != 0 { 23 panic("non-zero exit code") 24 } 25 } 26 27 func TestDefault(t *testing.T) { 28 resetFlags() 29 err := run([]string{"default"}) 30 if err != nil { 31 t.Fatal(err) 32 } 33 } 34 35 func TestWebsocket(t *testing.T) { 36 resetFlags() 37 err := run([]string{"ws", "-template=websocket-cli"}) 38 if err != nil { 39 t.Fatal(err) 40 } 41 } 42 43 var blankCMDLine = *flag.CommandLine 44 45 func resetFlags() { 46 cmdLine := blankCMDLine 47 flag.CommandLine = &cmdLine 48 }