diff options
author | Vincent Ambo <mail@tazj.in> | 2018-06-26T10·25+0200 |
---|---|---|
committer | Vincent Ambo <github@tazj.in> | 2018-06-26T19·06+0200 |
commit | 6d8214bfc8eb9733f0adf58a629c77950c34e80d (patch) | |
tree | e915ac77b68d50c76e80eb4b1d5b3a0808444640 /context/context_test.go | |
parent | 4a6f087fbfe84731db0a8e5084364ad0f6ad5212 (diff) |
test(context): Introduce an explicit value merging test
Introduces a test which will merge variables defined at every possible layer together and ensure that the loaded context configuration is as expected. The test data provides an actual resource set template that can be tested locally from a kontemplate source checkout: kontemplate template context/testdata/merging/context.yaml --var cliVar=cliVar
Diffstat (limited to 'context/context_test.go')
-rw-r--r-- | context/context_test.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/context/context_test.go b/context/context_test.go index e700cf41978a..34c77cc9b7c6 100644 --- a/context/context_test.go +++ b/context/context_test.go @@ -293,3 +293,25 @@ func TestSetInvalidVariablesFromArguments(t *testing.T) { t.Error("Expected invalid variable to return an error") } } + +// This test ensures that variables are merged in the correct order. +// Please consult the test data in `testdata/merging`. +func TestValueMergePrecedence(t *testing.T) { + cliVars:= []string{"cliVar=cliVar"} + ctx, _ := LoadContext("testdata/merging/context.yaml", &cliVars) + + expected := map[string]interface{}{ + "defaultVar": "defaultVar", + "importVar": "importVar", + "globalVar": "globalVar", + "includeVar": "includeVar", + "cliVar": "cliVar", + } + + result := ctx.ResourceSets[0].Values + + if !reflect.DeepEqual(expected, result) { + t.Errorf("Merged values did not match expected result: \n%v", result) + t.Fail() + } +} |