1package cmd 2 3import ( 4 "fmt" 5 "os" 6 "testing" 7) 8 9func TestGoldenAddCmd(t *testing.T) { 10 command := &Command{ 11 CmdName: "test", 12 CmdParent: parentName, 13 Project: getProject(), 14 } 15 defer os.RemoveAll(command.AbsolutePath) 16 17 command.Project.Create() 18 if err := command.Create(); err != nil { 19 t.Fatal(err) 20 } 21 22 generatedFile := fmt.Sprintf("%s/cmd/%s.go", command.AbsolutePath, command.CmdName) 23 goldenFile := fmt.Sprintf("testdata/%s.go.golden", command.CmdName) 24 err := compareFiles(generatedFile, goldenFile) 25 if err != nil { 26 t.Fatal(err) 27 } 28} 29 30func TestValidateCmdName(t *testing.T) { 31 testCases := []struct { 32 input string 33 expected string 34 }{ 35 {"cmdName", "cmdName"}, 36 {"cmd_name", "cmdName"}, 37 {"cmd-name", "cmdName"}, 38 {"cmd______Name", "cmdName"}, 39 {"cmd------Name", "cmdName"}, 40 {"cmd______name", "cmdName"}, 41 {"cmd------name", "cmdName"}, 42 {"cmdName-----", "cmdName"}, 43 {"cmdname-", "cmdname"}, 44 } 45 46 for _, testCase := range testCases { 47 got := validateCmdName(testCase.input) 48 if testCase.expected != got { 49 t.Errorf("Expected %q, got %q", testCase.expected, got) 50 } 51 } 52} 53