mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-29 22:48:01 +00:00
* Initial work. * Periodic push. * Fmt and start adding args to approve_policies cmd. * keep funcs for now. * Periodic push. * Periodic push. * fmt. * Move approve policies logic to project_command_runner. * update some tests * More test fixes. * update more tests. fix som logic. * more tests. add additional info to common data for custom templates. * fix apply with policies bug. update more tests/fmt * file perms * fix error parsing for conftest results. * Update more tests and linting. * update documentation. * Address no-fail case. Address comments. * Forgot changes. * fix markdown renderer * Fix policy fail logic. remove uneeded tmpl var * targeted policy approvals fix * Address PR comments. * empty commit to trigger build --------- Co-authored-by: PePe Amengual <jose.amengual@gmail.com> Co-authored-by: rkstrickland <ross.strickland@instacart.com> Co-authored-by: Dylan Page <dylan.page@autodesk.com>
162 lines
3.3 KiB
Go
162 lines
3.3 KiB
Go
package command_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/runatlantis/atlantis/server/core/config/valid"
|
|
"github.com/runatlantis/atlantis/server/events/command"
|
|
"github.com/runatlantis/atlantis/server/events/models"
|
|
. "github.com/runatlantis/atlantis/testing"
|
|
)
|
|
|
|
// Test PolicyCleared and PolicySummary
|
|
func TestPolicyCheckResults_PolicyFuncs(t *testing.T) {
|
|
cases := []struct {
|
|
description string
|
|
policySetsConfig valid.PolicySets
|
|
policySetStatus []models.PolicySetStatus
|
|
policyClearedExp bool
|
|
}{
|
|
{
|
|
description: "single policy set, not passed",
|
|
policySetsConfig: valid.PolicySets{
|
|
PolicySets: []valid.PolicySet{
|
|
{
|
|
Name: "policy1",
|
|
ApproveCount: 1,
|
|
},
|
|
},
|
|
},
|
|
policySetStatus: []models.PolicySetStatus{
|
|
{
|
|
PolicySetName: "policy1",
|
|
Passed: false,
|
|
Approvals: 0,
|
|
},
|
|
},
|
|
policyClearedExp: false,
|
|
},
|
|
{
|
|
description: "single policy set, passed",
|
|
policySetsConfig: valid.PolicySets{
|
|
PolicySets: []valid.PolicySet{
|
|
{
|
|
Name: "policy1",
|
|
ApproveCount: 1,
|
|
},
|
|
},
|
|
},
|
|
policySetStatus: []models.PolicySetStatus{
|
|
{
|
|
PolicySetName: "policy1",
|
|
Passed: true,
|
|
Approvals: 0,
|
|
},
|
|
},
|
|
policyClearedExp: true,
|
|
},
|
|
{
|
|
description: "single policy set, fully approved",
|
|
policySetsConfig: valid.PolicySets{
|
|
PolicySets: []valid.PolicySet{
|
|
{
|
|
Name: "policy1",
|
|
ApproveCount: 1,
|
|
},
|
|
},
|
|
},
|
|
policySetStatus: []models.PolicySetStatus{
|
|
{
|
|
PolicySetName: "policy1",
|
|
Passed: false,
|
|
Approvals: 1,
|
|
},
|
|
},
|
|
policyClearedExp: true,
|
|
},
|
|
{
|
|
description: "multiple policy sets, different states.",
|
|
policySetsConfig: valid.PolicySets{
|
|
PolicySets: []valid.PolicySet{
|
|
{
|
|
Name: "policy1",
|
|
ApproveCount: 2,
|
|
},
|
|
{
|
|
Name: "policy2",
|
|
ApproveCount: 1,
|
|
},
|
|
{
|
|
Name: "policy3",
|
|
ApproveCount: 1,
|
|
},
|
|
},
|
|
},
|
|
policySetStatus: []models.PolicySetStatus{
|
|
{
|
|
PolicySetName: "policy1",
|
|
Passed: false,
|
|
Approvals: 0,
|
|
},
|
|
{
|
|
PolicySetName: "policy2",
|
|
Passed: false,
|
|
Approvals: 1,
|
|
},
|
|
{
|
|
PolicySetName: "policy3",
|
|
Passed: true,
|
|
Approvals: 0,
|
|
},
|
|
},
|
|
policyClearedExp: false,
|
|
},
|
|
{
|
|
description: "multiple policy sets, all cleared.",
|
|
policySetsConfig: valid.PolicySets{
|
|
PolicySets: []valid.PolicySet{
|
|
{
|
|
Name: "policy1",
|
|
ApproveCount: 2,
|
|
},
|
|
{
|
|
Name: "policy2",
|
|
ApproveCount: 1,
|
|
},
|
|
{
|
|
Name: "policy3",
|
|
ApproveCount: 1,
|
|
},
|
|
},
|
|
},
|
|
policySetStatus: []models.PolicySetStatus{
|
|
{
|
|
PolicySetName: "policy1",
|
|
Passed: false,
|
|
Approvals: 2,
|
|
},
|
|
{
|
|
PolicySetName: "policy2",
|
|
Passed: false,
|
|
Approvals: 1,
|
|
},
|
|
{
|
|
PolicySetName: "policy3",
|
|
Passed: true,
|
|
Approvals: 0,
|
|
},
|
|
},
|
|
policyClearedExp: true,
|
|
},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.description, func(t *testing.T) {
|
|
pcs := command.ProjectContext{
|
|
ProjectPolicyStatus: c.policySetStatus,
|
|
PolicySets: c.policySetsConfig,
|
|
}
|
|
Equals(t, c.policyClearedExp, pcs.PolicyCleared())
|
|
})
|
|
}
|
|
}
|