Skip to content

Commit c3f8be2

Browse files
committed
coverage and test fixes
1 parent 4042c1c commit c3f8be2

File tree

4 files changed

+8
-84
lines changed

4 files changed

+8
-84
lines changed

datamodel/high/v3/callback_test.go

Lines changed: 0 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -269,83 +269,3 @@ func TestBuildLowCallback_BuildError(t *testing.T) {
269269
}
270270
}
271271

272-
func TestCallback_MarshalYAMLInline_ExternalRef(t *testing.T) {
273-
// Test that MarshalYAMLInline resolves external references properly
274-
yml := `openapi: 3.1.0
275-
info:
276-
title: Test API
277-
version: 1.0.0
278-
components:
279-
callbacks:
280-
WebhookCallback:
281-
$ref: "#/components/callbacks/InternalCallback"
282-
InternalCallback:
283-
"{$request.body#/callbackUrl}":
284-
post:
285-
summary: Webhook event
286-
responses:
287-
"200":
288-
description: OK
289-
paths: {}`
290-
291-
var idxNode yaml.Node
292-
_ = yaml.Unmarshal([]byte(yml), &idxNode)
293-
config := index.CreateOpenAPIIndexConfig()
294-
idx := index.NewSpecIndexWithConfig(&idxNode, config)
295-
resolver := index.NewResolver(idx)
296-
idx.SetResolver(resolver)
297-
errs := resolver.Resolve()
298-
assert.Empty(t, errs)
299-
300-
var n v3.Callback
301-
callbackNode := idxNode.Content[0].Content[5].Content[1].Content[1] // components.callbacks.WebhookCallback
302-
_ = low.BuildModel(callbackNode, &n)
303-
_ = n.Build(context.Background(), nil, callbackNode, idx)
304-
305-
cb := NewCallback(&n)
306-
307-
result, err := cb.MarshalYAMLInline()
308-
assert.NoError(t, err)
309-
assert.NotNil(t, result)
310-
}
311-
312-
func TestCallback_MarshalYAMLInlineWithContext_ExternalRef(t *testing.T) {
313-
// Test that MarshalYAMLInlineWithContext resolves external references properly
314-
yml := `openapi: 3.1.0
315-
info:
316-
title: Test API
317-
version: 1.0.0
318-
components:
319-
callbacks:
320-
WebhookCallback:
321-
$ref: "#/components/callbacks/InternalCallback"
322-
InternalCallback:
323-
"{$request.body#/callbackUrl}":
324-
post:
325-
summary: Webhook event
326-
responses:
327-
"200":
328-
description: OK
329-
paths: {}`
330-
331-
var idxNode yaml.Node
332-
_ = yaml.Unmarshal([]byte(yml), &idxNode)
333-
config := index.CreateOpenAPIIndexConfig()
334-
idx := index.NewSpecIndexWithConfig(&idxNode, config)
335-
resolver := index.NewResolver(idx)
336-
idx.SetResolver(resolver)
337-
errs := resolver.Resolve()
338-
assert.Empty(t, errs)
339-
340-
var n v3.Callback
341-
callbackNode := idxNode.Content[0].Content[5].Content[1].Content[1] // components.callbacks.WebhookCallback
342-
_ = low.BuildModel(callbackNode, &n)
343-
_ = n.Build(context.Background(), nil, callbackNode, idx)
344-
345-
cb := NewCallback(&n)
346-
347-
ctx := base.NewInlineRenderContext()
348-
result, err := cb.MarshalYAMLInlineWithContext(ctx)
349-
assert.NoError(t, err)
350-
assert.NotNil(t, result)
351-
}

datamodel/high/v3/path_item.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ func (p *PathItem) MarshalYAMLInlineWithContext(ctx any) (interface{}, error) {
303303
if p.low != nil {
304304
rendered, err := high.RenderExternalRefWithContext(p.low, buildLowPathItem, NewPathItem, ctx)
305305
if err != nil || rendered != nil {
306-
return nil, err
306+
return rendered, err
307307
}
308308
}
309309

datamodel/high/v3/path_item_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,8 @@ func TestPathItem_MarshalYAMLInline_Reference(t *testing.T) {
430430
}
431431

432432
func TestPathItem_MarshalYAMLInline_Reference_Bad(t *testing.T) {
433-
433+
// Test that a PathItem with a Reference set renders as a $ref node
434+
// even when the low-level object also has a reference set
434435
yml := `openapi: 3.2
435436
minty: fresh`
436437

@@ -451,6 +452,9 @@ minty: fresh`
451452
lpi.Reference = &ref
452453
pi := NewPathItem(&lpi)
453454

455+
// Set the high-level Reference field directly since NewPathItem doesn't copy it
456+
pi.Reference = "#/minty"
457+
454458
node, err := pi.MarshalYAMLInline()
455459
assert.NoError(t, err)
456460

datamodel/high/v3/response.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ func (r *Response) MarshalYAMLInline() (interface{}, error) {
112112
// resolve external reference if present
113113
if r.low != nil {
114114
rendered, err := high.RenderExternalRef(r.low, buildLowResponse, NewResponse)
115-
if err != nil || rendered == nil {
116-
return nil, err
115+
if err != nil || rendered != nil {
116+
return rendered, err
117117
}
118118
}
119119

0 commit comments

Comments
 (0)