github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/core/structs/alias_test.go (about) 1 package structs_test 2 3 import ( 4 "fmt" 5 "math/rand" 6 "testing" 7 8 _ "github.com/lmorg/murex/builtins" 9 "github.com/lmorg/murex/test" 10 ) 11 12 func TestAliasParamParsing(t *testing.T) { 13 alias := fmt.Sprintf("GoTest-alias-%d-", rand.Int()) 14 15 tests := []test.MurexTest{ 16 // errors 17 18 { 19 Block: fmt.Sprintf(`alias %s%d`, alias, -1), 20 Stderr: "no command supplied", 21 ExitNum: 1, 22 }, 23 { 24 Block: fmt.Sprintf(`alias %s%d `, alias, -2), 25 Stderr: "no command supplied", 26 ExitNum: 1, 27 }, 28 { 29 Block: fmt.Sprintf(`alias %s%d=`, alias, -3), 30 Stderr: "no command supplied", 31 ExitNum: 1, 32 }, 33 { 34 Block: fmt.Sprintf(`alias %s%d= `, alias, -4), 35 Stderr: "no command supplied", 36 ExitNum: 1, 37 }, 38 { 39 Block: fmt.Sprintf(`alias %s%d =`, alias, -1), 40 Stderr: "no command supplied", 41 ExitNum: 1, 42 }, 43 { 44 Block: fmt.Sprintf(`alias %s%d foobar`, alias, -1), 45 Stderr: "invalid syntax", 46 ExitNum: 1, 47 }, 48 49 // no space 50 51 { 52 Block: fmt.Sprintf(`alias %s%d=foo bar; alias -> [%s%d]`, alias, 0, alias, 0), 53 Stdout: "[\"foo\",\"bar\"]", 54 }, 55 56 // 1 space 57 58 { 59 Block: fmt.Sprintf(`alias %s%d= foo bar; alias -> [%s%d]`, alias, 1, alias, 1), 60 Stdout: "[\"foo\",\"bar\"]", 61 }, 62 { 63 Block: fmt.Sprintf(`alias %s%d =foo bar; alias -> [%s%d]`, alias, 2, alias, 2), 64 Stdout: "[\"foo\",\"bar\"]", 65 }, 66 { 67 Block: fmt.Sprintf(`alias %s%d = foo bar; alias -> [%s%d]`, alias, 3, alias, 3), 68 Stdout: "[\"foo\",\"bar\"]", 69 }, 70 71 // 2 spaces 72 73 { 74 Block: fmt.Sprintf(`alias %s%d= foo bar; alias -> [%s%d]`, alias, 4, alias, 4), 75 Stdout: "[\"foo\",\"bar\"]", 76 }, 77 { 78 Block: fmt.Sprintf(`alias %s%d =foo bar; alias -> [%s%d]`, alias, 5, alias, 5), 79 Stdout: "[\"foo\",\"bar\"]", 80 }, 81 { 82 Block: fmt.Sprintf(`alias %s%d = foo bar; alias -> [%s%d]`, alias, 6, alias, 6), 83 Stdout: "[\"foo\",\"bar\"]", 84 }, 85 86 // 1 tab 87 88 { 89 Block: fmt.Sprintf(`alias %s%d= foo bar; alias -> [%s%d]`, alias, 7, alias, 7), 90 Stdout: "[\"foo\",\"bar\"]", 91 }, 92 { 93 Block: fmt.Sprintf(`alias %s%d =foo bar; alias -> [%s%d]`, alias, 8, alias, 8), 94 Stdout: "[\"foo\",\"bar\"]", 95 }, 96 { 97 Block: fmt.Sprintf(`alias %s%d = foo bar; alias -> [%s%d]`, alias, 9, alias, 9), 98 Stdout: "[\"foo\",\"bar\"]", 99 }, 100 101 // 2 tabs 102 103 { 104 Block: fmt.Sprintf(`alias %s%d= foo bar; alias -> [%s%d]`, alias, 10, alias, 10), 105 Stdout: "[\"foo\",\"bar\"]", 106 }, 107 { 108 Block: fmt.Sprintf(`alias %s%d =foo bar; alias -> [%s%d]`, alias, 11, alias, 11), 109 Stdout: "[\"foo\",\"bar\"]", 110 }, 111 { 112 Block: fmt.Sprintf(`alias %s%d = foo bar; alias -> [%s%d]`, alias, 12, alias, 12), 113 Stdout: "[\"foo\",\"bar\"]", 114 }, 115 116 117 } 118 119 test.RunMurexTestsRx(tests, t) 120 }