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  }