Skip to content

Commit d8c8a6c

Browse files
authored
Merge pull request #106 from cmars/fix/merge-empty-dst
fix: empty merge destination
2 parents 69a9763 + 8cde9c1 commit d8c8a6c

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

merge.go

+3
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,9 @@ func mergeInfo(dst, src *openapi3.T, replace bool) {
130130
}
131131

132132
func mergePaths(dst, src *openapi3.T, replace bool) {
133+
if src.Paths != nil && dst.Paths == nil {
134+
dst.Paths = make(openapi3.Paths)
135+
}
133136
for k, v := range src.Paths {
134137
if _, ok := dst.Paths[k]; !ok || replace {
135138
dst.Paths[k] = v

merge_test.go

+23
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,29 @@ servers:
257257
})
258258
}
259259

260+
func TestMergeIntoEmpty(t *testing.T) {
261+
c := qt.New(t)
262+
srcYaml := `
263+
info:
264+
title: Src
265+
version: src
266+
paths:
267+
/foo:
268+
get:
269+
description: get a foo
270+
responses:
271+
200:
272+
contents:
273+
application/json:
274+
schema:
275+
type: object
276+
`
277+
src := mustLoad(c, srcYaml)
278+
dst := &openapi3.T{}
279+
vervet.Merge(dst, src, false)
280+
c.Assert(dst.Paths, qt.HasLen, 1)
281+
}
282+
260283
func mustLoadFile(c *qt.C, path string) *openapi3.T {
261284
doc, err := vervet.NewDocumentFile(testdata.Path(path))
262285
c.Assert(err, qt.IsNil)

0 commit comments

Comments
 (0)