Skip to content

Commit 4416eea

Browse files
authored
Add missing severity levels (#45)
* Add missing severity levels * Extend linter timeout
1 parent c59b585 commit 4416eea

File tree

4 files changed

+20
-15
lines changed

4 files changed

+20
-15
lines changed

.golangci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
run:
2+
timeout: 5m

internal/cmd/compare.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,13 +159,13 @@ func breakingChanges(oldSchema, newSchema schema.PackageSpec) *diagtree.Node {
159159
for propName, prop := range f.Inputs.Properties {
160160
msg := msg.Value(propName)
161161
if newFunc.Inputs == nil {
162-
msg.SetDescription("missing input %q", propName)
162+
msg.SetDescription(diagtree.Warn, "missing input %q", propName)
163163
continue
164164
}
165165

166166
newProp, ok := newFunc.Inputs.Properties[propName]
167167
if !ok {
168-
msg.SetDescription("missing input %q", propName)
168+
msg.SetDescription(diagtree.Warn, "missing input %q", propName)
169169
continue
170170
}
171171

@@ -333,7 +333,7 @@ func validateTypes(old *schema.TypeSpec, new *schema.TypeSpec, msg *diagtree.Nod
333333
newType = new.Ref
334334
}
335335
if oldType != newType {
336-
msg.SetDescription("type changed from %q to %q", oldType, newType)
336+
msg.SetDescription(diagtree.Warn, "type changed from %q to %q", oldType, newType)
337337
}
338338

339339
validateTypes(old.Items, new.Items, msg.Label("items"))

internal/util/diagtree/diagtree.go

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -167,10 +167,10 @@ func (m *Node) severity() string {
167167
for m != nil {
168168
s := m.uniqueSuccessor()
169169
if s == nil {
170-
if m.Severity == "" {
170+
if m.Severity == None {
171171
return ""
172172
}
173-
return string(m.Severity) + " "
173+
return m.Severity.String() + " "
174174
}
175175
m = s
176176
}
@@ -180,20 +180,23 @@ func (m *Node) severity() string {
180180
// The severity of a node.
181181
//
182182
// Nodes with their own (non-None) severity are always displayed on their own level.
183-
type Severity string
183+
type Severity struct{ s string }
184184

185-
const (
186-
None Severity = ""
187-
Info Severity = "`🟢`"
188-
Warn Severity = "`🟡`"
189-
Danger Severity = "`🔴`"
185+
var (
186+
None = Severity{""}
187+
Info = Severity{"`🟢`"}
188+
Warn = Severity{"`🟡`"}
189+
Danger = Severity{"`🔴`"}
190190
)
191191

192+
func (s Severity) String() string {
193+
return s.s
194+
}
195+
192196
func (m *Node) SetDescription(level Severity, msg string, a ...any) {
193-
for v := m.parent; v != nil && !v.doDisplay; v = v.parent {
197+
for v := m; v != nil && !v.doDisplay; v = v.parent {
194198
v.doDisplay = true
195199
}
196-
m.doDisplay = true
197200
m.Description = fmt.Sprintf(msg, a...)
198201
m.Severity = level
199202
}

internal/util/diagtree/diagtree_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ func TestPrunedDisplay(t *testing.T) {
2525
tests := []testCase{
2626
{
2727
input: n(func(n *diagtree.Node) {
28-
n.SetDescription(diagtree.Info, "A top level value")
28+
n.SetDescription(diagtree.Info, "A top level value (%d)", 1)
2929
}),
30-
expected: "### `🟢` Top Level A top level value\n",
30+
expected: "### `🟢` Top Level A top level value (1)\n",
3131
maxItems: 10,
3232
expectedCount: 1,
3333
},

0 commit comments

Comments
 (0)