Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 0c1ee92

Browse files
Merge pull request #459 from ulyssessouza/refactor-e2e-tmp-fs
Refactor e2e tests to use "gotest.tools/fs" dir
2 parents ec9d985 + 5c667be commit 0c1ee92

1 file changed

Lines changed: 46 additions & 25 deletions

File tree

e2e/commands_test.go

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package e2e
33
import (
44
"fmt"
55
"io/ioutil"
6-
"os"
76
"path/filepath"
87
"regexp"
98
"runtime"
@@ -111,49 +110,58 @@ maintainers:
111110
email: joe@joe.com
112111
`
113112
envData := "# some comment\nNGINX_DRY_RUN=-t"
114-
dir := fs.NewDir(t, "app_input",
113+
tmpDir := fs.NewDir(t, "app_input",
115114
fs.WithFile(internal.ComposeFileName, composeData),
116115
fs.WithFile(".env", envData),
117116
)
118-
defer dir.Remove()
117+
defer tmpDir.Remove()
119118

120119
testAppName := "app-test"
121120
dirName := internal.DirNameFromAppName(testAppName)
122-
defer os.RemoveAll(dirName)
123121

124-
icmd.RunCommand(dockerApp, "init", testAppName,
125-
"-c", dir.Join(internal.ComposeFileName),
122+
cmd := icmd.Cmd{Dir: tmpDir.Path()}
123+
124+
cmd.Command = []string{dockerApp,
125+
"init", testAppName,
126+
"-c", tmpDir.Join(internal.ComposeFileName),
126127
"-d", "my cool app",
127128
"-m", "bob",
128-
"-m", "joe:joe@joe.com",
129-
).Assert(t, icmd.Success)
129+
"-m", "joe:joe@joe.com"}
130+
icmd.RunCmd(cmd).Assert(t, icmd.Success)
131+
130132
manifest := fs.Expected(
131133
t,
132134
fs.WithMode(0755),
133135
fs.WithFile(internal.MetadataFileName, meta, fs.WithMode(0644)), // too many variables, cheating
134136
fs.WithFile(internal.ComposeFileName, composeData, fs.WithMode(0644)),
135137
fs.WithFile(internal.ParametersFileName, "NGINX_ARGS: FILL ME\nNGINX_DRY_RUN: -t\n", fs.WithMode(0644)),
136138
)
137-
assert.Assert(t, fs.Equal(dirName, manifest))
139+
assert.Assert(t, fs.Equal(tmpDir.Join(dirName), manifest))
138140

139141
// validate metadata with JSON Schema
140-
icmd.RunCommand(dockerApp, "validate", testAppName).Assert(t, icmd.Success)
142+
cmd.Command = []string{dockerApp, "validate", testAppName}
143+
icmd.RunCmd(cmd).Assert(t, icmd.Success)
141144

142145
// test single-file init
143-
icmd.RunCommand(dockerApp, "init", "tac",
144-
"-c", dir.Join(internal.ComposeFileName),
146+
cmd.Command = []string{dockerApp,
147+
"init", "tac",
148+
"-c", tmpDir.Join(internal.ComposeFileName),
145149
"-d", "my cool app",
146150
"-m", "bob",
147151
"-m", "joe:joe@joe.com",
148152
"-s",
149-
).Assert(t, icmd.Success)
150-
defer os.Remove("tac.dockerapp")
151-
appData, err := ioutil.ReadFile("tac.dockerapp")
153+
}
154+
icmd.RunCmd(cmd).Assert(t, icmd.Success)
155+
156+
appData, err := ioutil.ReadFile(tmpDir.Join("tac.dockerapp"))
152157
assert.NilError(t, err)
153158
assert.Assert(t, golden.Bytes(appData, "init-singlefile.dockerapp"))
154159
// Check various commands work on single-file app package
155-
icmd.RunCommand(dockerApp, "inspect", "tac").Assert(t, icmd.Success)
156-
icmd.RunCommand(dockerApp, "render", "tac").Assert(t, icmd.Success)
160+
cmd.Command = []string{dockerApp, "inspect", "tac"}
161+
icmd.RunCmd(cmd).Assert(t, icmd.Success)
162+
163+
cmd.Command = []string{dockerApp, "render", "tac"}
164+
icmd.RunCmd(cmd).Assert(t, icmd.Success)
157165
}
158166

159167
func TestDetectApp(t *testing.T) {
@@ -189,19 +197,32 @@ func TestDetectApp(t *testing.T) {
189197
}
190198

191199
func TestSplitMerge(t *testing.T) {
192-
icmd.RunCommand(dockerApp, "merge", "testdata/render/envvariables/my.dockerapp", "-o", "remerged.dockerapp").Assert(t, icmd.Success)
193-
defer os.Remove("remerged.dockerapp")
200+
tmpDir := fs.NewDir(t, "split_merge")
201+
defer tmpDir.Remove()
202+
203+
icmd.RunCommand(dockerApp, "merge", "testdata/render/envvariables/my.dockerapp", "-o", tmpDir.Join("remerged.dockerapp")).Assert(t, icmd.Success)
204+
205+
cmd := icmd.Cmd{Dir: tmpDir.Path()}
206+
194207
// test that inspect works on single-file
195-
result := icmd.RunCommand(dockerApp, "inspect", "remerged").Assert(t, icmd.Success)
208+
cmd.Command = []string{dockerApp, "inspect", "remerged"}
209+
result := icmd.RunCmd(cmd).Assert(t, icmd.Success)
196210
assert.Assert(t, golden.String(result.Combined(), "envvariables-inspect.golden"))
211+
197212
// split it
198-
icmd.RunCommand(dockerApp, "split", "remerged", "-o", "split.dockerapp").Assert(t, icmd.Success)
199-
defer os.RemoveAll("split.dockerapp")
200-
result = icmd.RunCommand(dockerApp, "inspect", "remerged").Assert(t, icmd.Success)
213+
cmd.Command = []string{dockerApp, "split", "remerged", "-o", "split.dockerapp"}
214+
icmd.RunCmd(cmd).Assert(t, icmd.Success)
215+
216+
cmd.Command = []string{dockerApp, "inspect", "remerged"}
217+
result = icmd.RunCmd(cmd).Assert(t, icmd.Success)
201218
assert.Assert(t, golden.String(result.Combined(), "envvariables-inspect.golden"))
219+
202220
// test inplace
203-
icmd.RunCommand(dockerApp, "merge", "split").Assert(t, icmd.Success)
204-
icmd.RunCommand(dockerApp, "split", "split").Assert(t, icmd.Success)
221+
cmd.Command = []string{dockerApp, "merge", "split"}
222+
icmd.RunCmd(cmd).Assert(t, icmd.Success)
223+
224+
cmd.Command = []string{dockerApp, "split", "split"}
225+
icmd.RunCmd(cmd).Assert(t, icmd.Success)
205226
}
206227

207228
func TestURL(t *testing.T) {

0 commit comments

Comments
 (0)