Skip to content

Commit 265d462

Browse files
committed
Added back in logic required by vacuum.
And added test for it. Signed-off-by: quobix <[email protected]>
1 parent def8e99 commit 265d462

2 files changed

Lines changed: 46 additions & 2 deletions

File tree

index/resolver.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package index
55

66
import (
7+
"errors"
78
"fmt"
89
"github.com/pb33f/libopenapi/utils"
910
"golang.org/x/exp/slices"
@@ -32,8 +33,14 @@ func (r *ResolvingError) Error() string {
3233
errs := utils.UnwrapErrors(r.ErrorRef)
3334
var msgs []string
3435
for _, e := range errs {
35-
msgs = append(msgs, fmt.Sprintf("%s: %s [%d:%d]", e.Error(),
36-
r.Path, r.Node.Line, r.Node.Column))
36+
var idxErr *IndexingError
37+
if errors.As(e, &idxErr) {
38+
msgs = append(msgs, fmt.Sprintf("%s: %s [%d:%d]", idxErr.Error(),
39+
idxErr.Path, idxErr.Node.Line, idxErr.Node.Column))
40+
} else {
41+
msgs = append(msgs, fmt.Sprintf("%s: %s [%d:%d]", e.Error(),
42+
r.Path, r.Node.Line, r.Node.Column))
43+
}
3744
}
3845
return strings.Join(msgs, "\n")
3946
}

index/resolver_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,43 @@ func TestResolvingError_Error(t *testing.T) {
4444
assert.Equal(t, "test2: $.test2 [1:1]", errs[1].Error())
4545
}
4646

47+
func TestResolvingError_Error_Index(t *testing.T) {
48+
49+
errs := []error{
50+
&ResolvingError{
51+
ErrorRef: errors.Join(&IndexingError{
52+
Path: "$.test1",
53+
Err: errors.New("test1"),
54+
Node: &yaml.Node{
55+
Line: 1,
56+
Column: 1,
57+
},
58+
}),
59+
Node: &yaml.Node{
60+
Line: 1,
61+
Column: 1,
62+
},
63+
},
64+
&ResolvingError{
65+
ErrorRef: errors.Join(&IndexingError{
66+
Path: "$.test2",
67+
Err: errors.New("test2"),
68+
Node: &yaml.Node{
69+
Line: 1,
70+
Column: 1,
71+
},
72+
}),
73+
Node: &yaml.Node{
74+
Line: 1,
75+
Column: 1,
76+
},
77+
},
78+
}
79+
80+
assert.Equal(t, "test1: $.test1 [1:1]", errs[0].Error())
81+
assert.Equal(t, "test2: $.test2 [1:1]", errs[1].Error())
82+
}
83+
4784
func Benchmark_ResolveDocumentStripe(b *testing.B) {
4885
baseDir := "../test_specs/stripe.yaml"
4986
resolveFile, _ := os.ReadFile(baseDir)

0 commit comments

Comments
 (0)