forked from toolshed/abra
.gitea
cli
app
app.go
backup.go
check.go
cmd.go
cmd_test.go
config.go
cp.go
deploy.go
errors.go
list.go
logs.go
new.go
ps.go
remove.go
restart.go
restore.go
rollback.go
run.go
secret.go
undeploy.go
upgrade.go
version.go
volume.go
catalogue
internal
recipe
record
server
cli.go
cmd
pkg
scripts
tests
.drone.yml
.e2e.env.sample
.envrc.sample
.gitignore
.goreleaser.yml
AUTHORS.md
LICENSE
Makefile
README.md
go.mod
go.sum
renovate.json
Note: the integration tests don't work due to ValidateApp still attempting to validate the host key for the test app which doesn't exist. This will be fixed in a future commit.
32 lines
914 B
Go
32 lines
914 B
Go
package app
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestParseCmdArgs(t *testing.T) {
|
|
tests := []struct {
|
|
input []string
|
|
shouldParse bool
|
|
expectedOutput string
|
|
}{
|
|
// `--` is not parsed when passed in from the command-line e.g. -- foo bar baz
|
|
// so we need to eumlate that as missing when testing if bash args are passed in
|
|
// see https://git.coopcloud.tech/coop-cloud/organising/issues/336 for more
|
|
{[]string{"foo.com", "app", "test"}, false, ""},
|
|
{[]string{"foo.com", "app", "test", "foo"}, true, "foo "},
|
|
{[]string{"foo.com", "app", "test", "foo", "bar", "baz"}, true, "foo bar baz "},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
ok, parsed := parseCmdArgs(test.input, false)
|
|
if ok != test.shouldParse {
|
|
t.Fatalf("[%s] should not parse", strings.Join(test.input, " "))
|
|
}
|
|
if parsed != test.expectedOutput {
|
|
t.Fatalf("%s does not match %s", parsed, test.expectedOutput)
|
|
}
|
|
}
|
|
}
|