(t *testing.T)
| 73 | } |
| 74 | |
| 75 | func TestExpandShellAlias(t *testing.T) { |
| 76 | findShFunc := func() (string, error) { |
| 77 | return "/usr/bin/sh", nil |
| 78 | } |
| 79 | tests := []struct { |
| 80 | name string |
| 81 | expansion string |
| 82 | args []string |
| 83 | findSh func() (string, error) |
| 84 | wantExpanded []string |
| 85 | wantErr string |
| 86 | }{ |
| 87 | { |
| 88 | name: "simple expansion", |
| 89 | expansion: "!git branch --show-current", |
| 90 | args: []string{}, |
| 91 | findSh: findShFunc, |
| 92 | wantExpanded: []string{"/usr/bin/sh", "-c", "git branch --show-current"}, |
| 93 | }, |
| 94 | { |
| 95 | name: "adding arguments after expansion", |
| 96 | expansion: "!git branch checkout", |
| 97 | args: []string{"123"}, |
| 98 | findSh: findShFunc, |
| 99 | wantExpanded: []string{"/usr/bin/sh", "-c", "git branch checkout", "--", "123"}, |
| 100 | }, |
| 101 | { |
| 102 | name: "unable to find sh", |
| 103 | expansion: "!git branch --show-current", |
| 104 | args: []string{}, |
| 105 | findSh: func() (string, error) { |
| 106 | return "", errors.New("unable to locate sh") |
| 107 | }, |
| 108 | wantErr: "unable to locate sh", |
| 109 | }, |
| 110 | } |
| 111 | for _, tt := range tests { |
| 112 | t.Run(tt.name, func(t *testing.T) { |
| 113 | gotExpanded, err := expandShellAlias(tt.expansion, tt.args, tt.findSh) |
| 114 | if tt.wantErr != "" { |
| 115 | assert.Nil(t, gotExpanded) |
| 116 | assert.EqualError(t, err, tt.wantErr) |
| 117 | return |
| 118 | } |
| 119 | assert.NoError(t, err) |
| 120 | assert.Equal(t, tt.wantExpanded, gotExpanded) |
| 121 | }) |
| 122 | } |
| 123 | } |
nothing calls this directly
no test coverage detected