Skip to content

Commit af3dc61

Browse files
authored
test: improve dupe detection test (#229)
* test: improve dupe detection test * chire: lint
1 parent 6dcea25 commit af3dc61

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

alzlib_test.go

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ func TestAddPolicyAndRoleAssetsAllowsDuplicateVersions(t *testing.T) {
5656
UniqueRoleDefinitions: defaultUniqueRoleDefinitions,
5757
})
5858

59+
// We prime the alzlib with an existing policy and policy set definition
60+
// that has the same name and version as those being added in the processor result.
61+
// This tests that **IDENTICAL** duplicate versions are allowed regardless of the AllowOverwrite setting.
5962
existingPolicyDefs := assets.NewPolicyDefinitionVersions()
6063
require.NoError(t, existingPolicyDefs.Add(testPolicyDefinition(t, "dup-policy", "1.0.0"), false))
6164
az.policyDefinitions["dup-policy"] = existingPolicyDefs
@@ -65,15 +68,31 @@ func TestAddPolicyAndRoleAssetsAllowsDuplicateVersions(t *testing.T) {
6568
az.policySetDefinitions["dup-policy-set"] = existingPolicySetDefs
6669

6770
res := processor.NewResult()
68-
dupPolicyDefs := assets.NewPolicyDefinitionVersions()
69-
require.NoError(t, dupPolicyDefs.Add(testPolicyDefinition(t, "dup-policy", "1.0.0"), false))
70-
res.PolicyDefinitions["dup-policy"] = dupPolicyDefs
71+
dupPolicyDefsIdenical := assets.NewPolicyDefinitionVersions()
72+
require.NoError(t, dupPolicyDefsIdenical.Add(testPolicyDefinition(t, "dup-policy", "1.0.0"), false))
73+
res.PolicyDefinitions["dup-policy"] = dupPolicyDefsIdenical
7174

72-
dupPolicySetDefs := assets.NewPolicySetDefinitionVersions()
73-
require.NoError(t, dupPolicySetDefs.Add(testPolicySetDefinition(t, "dup-policy-set", "1.0.0"), false))
74-
res.PolicySetDefinitions["dup-policy-set"] = dupPolicySetDefs
75+
dupPolicySetDefsIdentical := assets.NewPolicySetDefinitionVersions()
76+
require.NoError(t, dupPolicySetDefsIdentical.Add(testPolicySetDefinition(t, "dup-policy-set", "1.0.0"), false))
77+
res.PolicySetDefinitions["dup-policy-set"] = dupPolicySetDefsIdentical
7578

7679
require.NoError(t, az.addPolicyAndRoleAssets(res))
80+
81+
// Now we attempt to add duplicate versions that are different.
82+
dupPolicyDefsDifferent := assets.NewPolicyDefinitionVersions()
83+
testPd := testPolicyDefinition(t, "dup-policy", "1.0.0")
84+
testPd.Properties.Description = to.Ptr("A different description to make this policy definition different")
85+
require.NoError(t, dupPolicyDefsDifferent.Add(testPd, false))
86+
87+
res = processor.NewResult()
88+
res.PolicyDefinitions["dup-policy"] = dupPolicyDefsDifferent
89+
90+
switch tc.allowOverwrite {
91+
case true:
92+
require.NoError(t, az.addPolicyAndRoleAssets(res))
93+
case false:
94+
require.Error(t, az.addPolicyAndRoleAssets(res))
95+
}
7796
})
7897
}
7998
}

0 commit comments

Comments
 (0)