mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-10 04:20:24 +00:00
Added back in logic required by vacuum.
And added test for it. Signed-off-by: quobix <dave@quobix.com>
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
package index
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/pb33f/libopenapi/utils"
|
||||
"golang.org/x/exp/slices"
|
||||
@@ -32,9 +33,15 @@ func (r *ResolvingError) Error() string {
|
||||
errs := utils.UnwrapErrors(r.ErrorRef)
|
||||
var msgs []string
|
||||
for _, e := range errs {
|
||||
var idxErr *IndexingError
|
||||
if errors.As(e, &idxErr) {
|
||||
msgs = append(msgs, fmt.Sprintf("%s: %s [%d:%d]", idxErr.Error(),
|
||||
idxErr.Path, idxErr.Node.Line, idxErr.Node.Column))
|
||||
} else {
|
||||
msgs = append(msgs, fmt.Sprintf("%s: %s [%d:%d]", e.Error(),
|
||||
r.Path, r.Node.Line, r.Node.Column))
|
||||
}
|
||||
}
|
||||
return strings.Join(msgs, "\n")
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,43 @@ func TestResolvingError_Error(t *testing.T) {
|
||||
assert.Equal(t, "test2: $.test2 [1:1]", errs[1].Error())
|
||||
}
|
||||
|
||||
func TestResolvingError_Error_Index(t *testing.T) {
|
||||
|
||||
errs := []error{
|
||||
&ResolvingError{
|
||||
ErrorRef: errors.Join(&IndexingError{
|
||||
Path: "$.test1",
|
||||
Err: errors.New("test1"),
|
||||
Node: &yaml.Node{
|
||||
Line: 1,
|
||||
Column: 1,
|
||||
},
|
||||
}),
|
||||
Node: &yaml.Node{
|
||||
Line: 1,
|
||||
Column: 1,
|
||||
},
|
||||
},
|
||||
&ResolvingError{
|
||||
ErrorRef: errors.Join(&IndexingError{
|
||||
Path: "$.test2",
|
||||
Err: errors.New("test2"),
|
||||
Node: &yaml.Node{
|
||||
Line: 1,
|
||||
Column: 1,
|
||||
},
|
||||
}),
|
||||
Node: &yaml.Node{
|
||||
Line: 1,
|
||||
Column: 1,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
assert.Equal(t, "test1: $.test1 [1:1]", errs[0].Error())
|
||||
assert.Equal(t, "test2: $.test2 [1:1]", errs[1].Error())
|
||||
}
|
||||
|
||||
func Benchmark_ResolveDocumentStripe(b *testing.B) {
|
||||
baseDir := "../test_specs/stripe.yaml"
|
||||
resolveFile, _ := os.ReadFile(baseDir)
|
||||
|
||||
Reference in New Issue
Block a user