mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-08-02 10:28:30 +00:00
fix: Policy check summary not shown outside of "Show Output" details (#2837)
This commit is contained in:
@@ -260,10 +260,15 @@ $$$
|
||||
[]command.ProjectResult{
|
||||
{
|
||||
PolicyCheckSuccess: &models.PolicyCheckSuccess{
|
||||
PolicyCheckOutput: "2 tests, 1 passed, 0 warnings, 0 failure, 0 exceptions",
|
||||
LockURL: "lock-url",
|
||||
RePlanCmd: "atlantis plan -d path -w workspace",
|
||||
ApplyCmd: "atlantis apply -d path -w workspace",
|
||||
// strings.Repeat require to get wrapped result
|
||||
PolicyCheckOutput: strings.Repeat("line\n", 13) + `Checking plan against the following policies:
|
||||
test_policy
|
||||
FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibited.
|
||||
|
||||
2 tests, 1 passed, 0 warnings, 0 failure, 0 exceptions`,
|
||||
LockURL: "lock-url",
|
||||
RePlanCmd: "atlantis plan -d path -w workspace",
|
||||
ApplyCmd: "atlantis apply -d path -w workspace",
|
||||
},
|
||||
Workspace: "workspace",
|
||||
RepoRelDir: "path",
|
||||
@@ -273,7 +278,13 @@ $$$
|
||||
models.Github,
|
||||
`Ran Policy Check for project: $projectname$ dir: $path$ workspace: $workspace$
|
||||
|
||||
<details><summary>Show Output</summary>
|
||||
|
||||
$$$diff
|
||||
` + strings.Repeat("line\n", 13) + `Checking plan against the following policies:
|
||||
test_policy
|
||||
FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibited.
|
||||
|
||||
2 tests, 1 passed, 0 warnings, 0 failure, 0 exceptions
|
||||
$$$
|
||||
|
||||
@@ -282,6 +293,8 @@ $$$
|
||||
* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
|
||||
* :repeat: To re-run policies **plan** this project again by commenting:
|
||||
* $atlantis plan -d path -w workspace$
|
||||
</details>
|
||||
2 tests, 1 passed, 0 warnings, 0 failure, 0 exceptions
|
||||
|
||||
---
|
||||
* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
|
||||
|
||||
@@ -415,7 +415,7 @@ type PolicyCheckSuccess struct {
|
||||
func (p *PolicyCheckSuccess) Summary() string {
|
||||
note := ""
|
||||
|
||||
r := regexp.MustCompile(`\d+ tests, \d+ passed, \d+ warnings, \d+ failures, \d+ exceptions`)
|
||||
r := regexp.MustCompile(`\d+ tests?, \d+ passed, \d+ warnings?, \d+ failures?, \d+ exceptions?(, \d skipped)?`)
|
||||
if match := r.FindString(p.PolicyCheckOutput); match != "" {
|
||||
return note + match
|
||||
}
|
||||
|
||||
@@ -356,13 +356,19 @@ func TestAzureDevopsSplitRepoFullName(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPolicyCheckSuccess_Summary(t *testing.T) {
|
||||
pcs := models.PolicyCheckSuccess{
|
||||
PolicyCheckOutput: `WARN - <redacted plan file> - main - example main package
|
||||
|
||||
20 tests, 19 passed, 1 warnings, 0 failures, 0 exceptions`,
|
||||
cases := []string{
|
||||
"20 tests, 19 passed, 2 warnings, 0 failures, 0 exceptions",
|
||||
"3 tests, 0 passed, 1 warning, 1 failure, 0 exceptions, 1 skipped",
|
||||
"1 test, 0 passed, 1 warning, 1 failure, 1 exception",
|
||||
}
|
||||
for i, summary := range cases {
|
||||
t.Run(fmt.Sprintf("summary %d", i), func(t *testing.T) {
|
||||
pcs := models.PolicyCheckSuccess{
|
||||
PolicyCheckOutput: `WARN - <redacted plan file> - main - example main package\n` + summary,
|
||||
}
|
||||
Equals(t, summary, pcs.Summary())
|
||||
})
|
||||
}
|
||||
|
||||
Equals(t, "20 tests, 19 passed, 1 warnings, 0 failures, 0 exceptions", pcs.Summary())
|
||||
}
|
||||
|
||||
func TestPullStatus_StatusCount(t *testing.T) {
|
||||
|
||||
@@ -10,5 +10,6 @@
|
||||
* :put_litter_in_its_place: To **delete** this plan click [here]({{.LockURL}})
|
||||
* :repeat: To re-run policies **plan** this project again by commenting:
|
||||
* `{{.RePlanCmd}}`
|
||||
</details>{{ template "diverged" . }}
|
||||
</details>
|
||||
{{.PolicyCheckSummary}}{{ template "diverged" . }}
|
||||
{{- end }}
|
||||
|
||||
Reference in New Issue
Block a user