|
1 | 1 | package carapace |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "fmt" |
5 | 4 | "os" |
6 | 5 | "path/filepath" |
7 | 6 | "strings" |
@@ -97,36 +96,56 @@ func TestEnv(t *testing.T) { |
97 | 96 |
|
98 | 97 | func TestEnvsubst(t *testing.T) { |
99 | 98 | c := Context{} |
100 | | - |
101 | | - if s, err := c.Envsubst("start${example}end"); s != "startend" || err != nil { |
102 | | - t.Fail() |
103 | | - } |
104 | | - |
105 | | - if s, err := c.Envsubst("start${!example}end"); s != "start${example}end" || err != nil { |
106 | | - fmt.Println(s) |
107 | | - t.Fail() |
108 | | - } |
109 | | - |
110 | | - if s, err := c.Envsubst("start${example:-default}end"); s != "startdefaultend" || err != nil { |
111 | | - t.Fail() |
112 | | - } |
113 | | - |
114 | | - if s, err := c.Envsubst("start${!example:-default}end"); s != "start${example:-default}end" || err != nil { |
115 | | - t.Fail() |
116 | | - } |
117 | | - |
118 | | - c.Setenv("example", "value") |
119 | | - if s, err := c.Envsubst("start${example}end"); s != "startvalueend" || err != nil { |
120 | | - t.Fail() |
121 | | - } |
122 | | - if s, err := c.Envsubst("start${!example}end"); s != "start${example}end" || err != nil { |
123 | | - t.Fail() |
124 | | - } |
125 | | - |
126 | | - if s, err := c.Envsubst("start${example:-default}end"); s != "startvalueend" || err != nil { |
127 | | - t.Fail() |
128 | | - } |
129 | | - if s, err := c.Envsubst("start${!example:-default}end"); s != "start${example:-default}end" || err != nil { |
130 | | - t.Fail() |
131 | | - } |
| 99 | + c.Setenv("REPLACE", "me") |
| 100 | + for s, expected := range map[string]string{ |
| 101 | + "BEFORE${REPLACE}AFTER": "BEFOREmeAFTER", |
| 102 | + "BEFORE${!REPLACE}AFTER": "BEFORE${REPLACE}AFTER", |
| 103 | + |
| 104 | + "BEFORE${REPLACE:-default}AFTER": "BEFOREmeAFTER", |
| 105 | + "BEFORE${!REPLACE:-default}AFTER": "BEFORE${REPLACE:-default}AFTER", |
| 106 | + "BEFORE${UNSET:-default}AFTER": "BEFOREdefaultAFTER", |
| 107 | + "BEFORE${!UNSET:-default}AFTER": "BEFORE${UNSET:-default}AFTER", |
| 108 | + } { |
| 109 | + t.Run(s, func(t *testing.T) { |
| 110 | + actual, err := c.Envsubst(s) |
| 111 | + if err != nil { |
| 112 | + t.Fatal(err) |
| 113 | + } |
| 114 | + if actual != expected { |
| 115 | + t.Fatalf("invalid replacement\nexpected: %#v\nactual : %#v", expected, actual) |
| 116 | + } |
| 117 | + }) |
| 118 | + } |
| 119 | + |
| 120 | + // if s, err := c.Envsubst("start${example}end"); s != "startend" || err != nil { |
| 121 | + // t.Fail() |
| 122 | + // } |
| 123 | + |
| 124 | + // if s, err := c.Envsubst("start${!example}end"); s != "start${example}end" || err != nil { |
| 125 | + // fmt.Println(s) |
| 126 | + // t.Fail() |
| 127 | + // } |
| 128 | + |
| 129 | + // if s, err := c.Envsubst("start${example:-default}end"); s != "startdefaultend" || err != nil { |
| 130 | + // t.Fail() |
| 131 | + // } |
| 132 | + |
| 133 | + // if s, err := c.Envsubst("start${!example:-default}end"); s != "start${example:-default}end" || err != nil { |
| 134 | + // t.Fail() |
| 135 | + // } |
| 136 | + |
| 137 | + // c.Setenv("example", "value") |
| 138 | + // if s, err := c.Envsubst("start${example}end"); s != "startvalueend" || err != nil { |
| 139 | + // t.Fail() |
| 140 | + // } |
| 141 | + // if s, err := c.Envsubst("start${!example}end"); s != "start${example}end" || err != nil { |
| 142 | + // t.Fail() |
| 143 | + // } |
| 144 | + |
| 145 | + // if s, err := c.Envsubst("start${example:-default}end"); s != "startvalueend" || err != nil { |
| 146 | + // t.Fail() |
| 147 | + // } |
| 148 | + // if s, err := c.Envsubst("start${!example:-default}end"); s != "start${example:-default}end" || err != nil { |
| 149 | + // t.Fail() |
| 150 | + // } |
132 | 151 | } |
0 commit comments