Skip to content

Commit

Permalink
(#25) Support checking for absent env vars in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mdelapenya committed Sep 18, 2019
1 parent a6d823e commit 1d0b640
Showing 1 changed file with 26 additions and 6 deletions.
32 changes: 26 additions & 6 deletions compose_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ func TestLocalDockerCompose(t *testing.T) {
Invoke()
checkIfError(t, err)

assertContainerEnvContainsKeyValue(t, compose.Identifier+"_nginx_1", "bar", "")
present := map[string]string{
"bar": "",
}
absent := map[string]string{}
assertContainerEnvironmentVariables(t, compose.Identifier+"_nginx_1", present, absent)

destroyFn := func() {
err := compose.Down()
Expand Down Expand Up @@ -49,7 +53,11 @@ func TestLocalDockerComposeWithEnvironment(t *testing.T) {
Invoke()
checkIfError(t, err)

assertContainerEnvContainsKeyValue(t, compose.Identifier+"_nginx_1", "bar", "BAR")
present := map[string]string{
"bar": "BAR",
}
absent := map[string]string{}
assertContainerEnvironmentVariables(t, compose.Identifier+"_nginx_1", present, absent)
}

func TestLocalDockerComposeWithMultipleComposeFiles(t *testing.T) {
Expand All @@ -76,17 +84,29 @@ func TestLocalDockerComposeWithMultipleComposeFiles(t *testing.T) {
Invoke()
checkIfError(t, err)

assertContainerEnvContainsKeyValue(t, compose.Identifier+"_nginx_1", "foo", "FOO")
present := map[string]string{
"bar": "BAR",
"foo": "FOO",
}
absent := map[string]string{}
assertContainerEnvironmentVariables(t, compose.Identifier+"_nginx_1", present, absent)
}

func assertContainerEnvContainsKeyValue(t *testing.T, identifier string, key string, value string) {
func assertContainerEnvironmentVariables(t *testing.T, identifier string, present map[string]string, absent map[string]string) {
args := []string{"exec", identifier, "env"}

output, err := executeAndGetOutput("docker", args)
checkIfError(t, err)

keyVal := key + "=" + value
assert.Contains(t, output, keyVal)
for k, v := range present {
keyVal := k + "=" + v
assert.Contains(t, output, keyVal)
}

for k, v := range absent {
keyVal := k + "=" + v
assert.NotContains(t, output, keyVal)
}
}

func checkIfError(t *testing.T, err ExecError) {
Expand Down

0 comments on commit 1d0b640

Please sign in to comment.