Add tests against reading config files (#2682)

* Add tests

* Use test tables

* Rename test config to better show its purpose

* Use temporary environment for testing

* Check also expansion with curly braces

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
This commit is contained in:
Wooseop Kim
2025-02-25 11:09:22 +09:00
committed by GitHub
parent 326d516f64
commit 404620bd4c
4 changed files with 46 additions and 0 deletions

View File

@@ -82,3 +82,44 @@ func TestFlags(t *testing.T) {
}) })
} }
} }
func TestReadArgsFile(t *testing.T) {
tables := []struct {
path string
split bool
args []string
env map[string]string
}{
{
path: path.Join("testdata", "simple.actrc"),
split: true,
args: []string{"--container-architecture=linux/amd64", "--action-offline-mode"},
},
{
path: path.Join("testdata", "env.actrc"),
split: true,
env: map[string]string{
"FAKEPWD": "/fake/test/pwd",
"FOO": "foo",
},
args: []string{
"--artifact-server-path", "/fake/test/pwd/.artifacts",
"--env", "FOO=prefix/foo/suffix",
},
},
{
path: path.Join("testdata", "split.actrc"),
split: true,
args: []string{"--container-options", "--volume /foo:/bar --volume /baz:/qux --volume /tmp:/tmp"},
},
}
for _, table := range tables {
t.Run(table.path, func(t *testing.T) {
for k, v := range table.env {
t.Setenv(k, v)
}
args := readArgsFile(table.path, table.split)
assert.Equal(t, table.args, args)
})
}
}

2
cmd/testdata/env.actrc vendored Normal file
View File

@@ -0,0 +1,2 @@
--artifact-server-path $FAKEPWD/.artifacts
--env FOO=prefix/${FOO}/suffix

2
cmd/testdata/simple.actrc vendored Normal file
View File

@@ -0,0 +1,2 @@
--container-architecture=linux/amd64
--action-offline-mode

1
cmd/testdata/split.actrc vendored Normal file
View File

@@ -0,0 +1 @@
--container-options --volume /foo:/bar --volume /baz:/qux --volume /tmp:/tmp