fix: rule severity is required (#4469)
This commit is contained in:
parent
7e2840b92e
commit
797d3bb0c4
@ -34,5 +34,9 @@ type SeverityRule struct {
|
||||
}
|
||||
|
||||
func (s *SeverityRule) Validate() error {
|
||||
if s.Severity == "" {
|
||||
return errors.New("severity should be set")
|
||||
}
|
||||
|
||||
return s.BaseRule.Validate(severityRuleMinConditionsCount)
|
||||
}
|
||||
|
@ -7,7 +7,108 @@ import (
|
||||
)
|
||||
|
||||
func TestSeverity_Validate(t *testing.T) {
|
||||
testCases := []struct {
|
||||
desc string
|
||||
severity *Severity
|
||||
}{
|
||||
{
|
||||
desc: "default with rules",
|
||||
severity: &Severity{
|
||||
Default: "high",
|
||||
Rules: []SeverityRule{
|
||||
{
|
||||
Severity: "low",
|
||||
BaseRule: BaseRule{
|
||||
Path: "test",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
desc: "default without rules",
|
||||
severity: &Severity{
|
||||
Default: "high",
|
||||
},
|
||||
},
|
||||
{
|
||||
desc: "same severity between default and rule",
|
||||
severity: &Severity{
|
||||
Default: "high",
|
||||
Rules: []SeverityRule{
|
||||
{
|
||||
Severity: "high",
|
||||
BaseRule: BaseRule{
|
||||
Path: "test",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range testCases {
|
||||
test := test
|
||||
t.Run(test.desc, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
err := test.severity.Validate()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestSeverity_Validate_error(t *testing.T) {
|
||||
testCases := []struct {
|
||||
desc string
|
||||
severity *Severity
|
||||
expected string
|
||||
}{
|
||||
{
|
||||
desc: "missing default severity",
|
||||
severity: &Severity{
|
||||
Default: "",
|
||||
Rules: []SeverityRule{
|
||||
{
|
||||
Severity: "low",
|
||||
BaseRule: BaseRule{
|
||||
Path: "test",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: "can't set severity rule option: no default severity defined",
|
||||
},
|
||||
{
|
||||
desc: "missing rule severity",
|
||||
severity: &Severity{
|
||||
Default: "high",
|
||||
Rules: []SeverityRule{
|
||||
{
|
||||
BaseRule: BaseRule{
|
||||
Path: "test",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: "error in severity rule #0: severity should be set",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range testCases {
|
||||
test := test
|
||||
t.Run(test.desc, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
err := test.severity.Validate()
|
||||
require.EqualError(t, err, test.expected)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestSeverityRule_Validate(t *testing.T) {
|
||||
rule := &SeverityRule{
|
||||
Severity: "low",
|
||||
BaseRule: BaseRule{
|
||||
Path: "test",
|
||||
},
|
||||
@ -17,20 +118,32 @@ func TestSeverity_Validate(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestSeverity_Validate_error(t *testing.T) {
|
||||
func TestSeverityRule_Validate_error(t *testing.T) {
|
||||
testCases := []struct {
|
||||
desc string
|
||||
rule *SeverityRule
|
||||
expected string
|
||||
}{
|
||||
{
|
||||
desc: "empty rule",
|
||||
rule: &SeverityRule{},
|
||||
desc: "missing severity",
|
||||
rule: &SeverityRule{
|
||||
BaseRule: BaseRule{
|
||||
Path: "test",
|
||||
},
|
||||
},
|
||||
expected: "severity should be set",
|
||||
},
|
||||
{
|
||||
desc: "empty rule",
|
||||
rule: &SeverityRule{
|
||||
Severity: "low",
|
||||
},
|
||||
expected: "at least 1 of (text, source, path[-except], linters) should be set",
|
||||
},
|
||||
{
|
||||
desc: "invalid path rule",
|
||||
rule: &SeverityRule{
|
||||
Severity: "low",
|
||||
BaseRule: BaseRule{
|
||||
Path: "**test",
|
||||
},
|
||||
@ -40,6 +153,7 @@ func TestSeverity_Validate_error(t *testing.T) {
|
||||
{
|
||||
desc: "invalid path-except rule",
|
||||
rule: &SeverityRule{
|
||||
Severity: "low",
|
||||
BaseRule: BaseRule{
|
||||
PathExcept: "**test",
|
||||
},
|
||||
@ -49,6 +163,7 @@ func TestSeverity_Validate_error(t *testing.T) {
|
||||
{
|
||||
desc: "invalid text rule",
|
||||
rule: &SeverityRule{
|
||||
Severity: "low",
|
||||
BaseRule: BaseRule{
|
||||
Text: "**test",
|
||||
},
|
||||
@ -58,6 +173,7 @@ func TestSeverity_Validate_error(t *testing.T) {
|
||||
{
|
||||
desc: "invalid source rule",
|
||||
rule: &SeverityRule{
|
||||
Severity: "low",
|
||||
BaseRule: BaseRule{
|
||||
Source: "**test",
|
||||
},
|
||||
@ -67,6 +183,7 @@ func TestSeverity_Validate_error(t *testing.T) {
|
||||
{
|
||||
desc: "path and path-expect",
|
||||
rule: &SeverityRule{
|
||||
Severity: "low",
|
||||
BaseRule: BaseRule{
|
||||
Path: "test",
|
||||
PathExcept: "test",
|
||||
|
Loading…
x
Reference in New Issue
Block a user