summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2021-02-28 20:36:22 -0500
committerDave Henderson <dhenderson@gmail.com>2021-02-28 20:48:18 -0500
commit6d6dceb55dc497895ef0957cd925f4b342e7ae56 (patch)
treed27833ec3ee2c78e29f3de7a6abecac75d4b3245 /internal
parent672aa486e9c5b6af7b65becad8507e5ac577794d (diff)
Fix --input-dir=. bug
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'internal')
-rw-r--r--internal/tests/inprocess-integration/inputdir_test.go29
-rw-r--r--internal/tests/integration/inputdir_test.go24
2 files changed, 53 insertions, 0 deletions
diff --git a/internal/tests/inprocess-integration/inputdir_test.go b/internal/tests/inprocess-integration/inputdir_test.go
index ed43ce7b..176bd6a5 100644
--- a/internal/tests/inprocess-integration/inputdir_test.go
+++ b/internal/tests/inprocess-integration/inputdir_test.go
@@ -233,3 +233,32 @@ func (s *InputDirSuite) TestReportsFilenameWithBadInputFile(c *C) {
assert.ErrorContains(c, err, "bad.tmpl:1: unexpected {{end}}")
assert.Equal(c, "", o)
}
+
+func (s *InputDirSuite) TestInputDirCwd(c *C) {
+ o, e, err := cmdWithDir(c, s.tmpDir.Path(),
+ "--input-dir", ".",
+ "--include", "*.txt",
+ "--output-map", `{{ .in | strings.ReplaceAll ".txt" ".out" }}`,
+ "-d", "config="+s.tmpDir.Join("config.yml"),
+ )
+ assertSuccess(c, o, e, err, "")
+
+ testdata := []struct {
+ path string
+ mode os.FileMode
+ content string
+ }{
+ {s.tmpDir.Join("in", "eins.out"), 0644, "eins"},
+ {s.tmpDir.Join("in", "inner", "deux.out"), 0444, "deux"},
+ {s.tmpDir.Join("in", "vier.out"), 0544, "deux * deux"},
+ }
+ for _, v := range testdata {
+ info, err := os.Stat(v.path)
+ assert.NilError(c, err)
+ m := config.NormalizeFileMode(v.mode)
+ assert.Equal(c, m, info.Mode(), v.path)
+ content, err := ioutil.ReadFile(v.path)
+ assert.NilError(c, err)
+ assert.Equal(c, v.content, string(content))
+ }
+}
diff --git a/internal/tests/integration/inputdir_test.go b/internal/tests/integration/inputdir_test.go
index d332564b..4e01cf12 100644
--- a/internal/tests/integration/inputdir_test.go
+++ b/internal/tests/integration/inputdir_test.go
@@ -246,3 +246,27 @@ func (s *InputDirSuite) TestReportsFilenameWithBadInputFile(c *C) {
Err: "bad.tmpl:1: unexpected {{end}}",
})
}
+
+func (s *InputDirSuite) TestInputDirCwd(c *C) {
+ result := icmd.RunCmd(icmd.Command(GomplateBin,
+ "--input-dir", ".",
+ "--include", "*.txt",
+ "--output-map", `{{ .in | strings.ReplaceAll ".txt" ".out" }}`,
+ "-d", "config="+s.tmpDir.Join("config.yml"),
+ ), func(c *icmd.Cmd) {
+ c.Dir = s.tmpDir.Path()
+ })
+ result.Assert(c, icmd.Success)
+
+ content, err := ioutil.ReadFile(s.tmpDir.Join("in", "eins.out"))
+ assert.NilError(c, err)
+ assert.Equal(c, "eins", string(content))
+
+ content, err = ioutil.ReadFile(s.tmpDir.Join("in", "inner", "deux.out"))
+ assert.NilError(c, err)
+ assert.Equal(c, "deux", string(content))
+
+ content, err = ioutil.ReadFile(s.tmpDir.Join("in", "vier.out"))
+ assert.NilError(c, err)
+ assert.Equal(c, `deux * deux`, string(content))
+}