@@ -10,6 +10,7 @@ import (
1010
1111 "github.com/pb33f/jsonpath/pkg/jsonpath"
1212 "github.com/stretchr/testify/assert"
13+ "github.com/stretchr/testify/require"
1314 "go.yaml.in/yaml/v4"
1415)
1516
@@ -1604,6 +1605,62 @@ func TestFindKeyNodeHelpers_BareMergeNodeDoesNotPanic(t *testing.T) {
16041605 })
16051606}
16061607
1608+ func TestFindKeyNodeHelpers_MergeKeyWithoutAliasDoesNotPanic (t * testing.T ) {
1609+ nodes := []* yaml.Node {
1610+ {Kind : yaml .ScalarNode , Tag : "!!merge" , Value : "<<" },
1611+ {Kind : yaml .ScalarNode , Tag : "!!str" , Value : "not-an-alias" },
1612+ }
1613+
1614+ assert .NotPanics (t , func () {
1615+ k , v := FindFirstKeyNode ("openapi" , nodes , 0 )
1616+ assert .Nil (t , k )
1617+ assert .Nil (t , v )
1618+
1619+ k , v = FindKeyNodeTop ("openapi" , nodes )
1620+ assert .Nil (t , k )
1621+ assert .Nil (t , v )
1622+
1623+ k , v = FindKeyNode ("openapi" , nodes )
1624+ assert .Nil (t , k )
1625+ assert .Nil (t , v )
1626+
1627+ k , l , v := FindKeyNodeFull ("openapi" , nodes )
1628+ assert .Nil (t , k )
1629+ assert .Nil (t , l )
1630+ assert .Nil (t , v )
1631+
1632+ k , l , v = FindKeyNodeFullTop ("openapi" , nodes )
1633+ assert .Nil (t , k )
1634+ assert .Nil (t , l )
1635+ assert .Nil (t , v )
1636+ })
1637+ }
1638+
1639+ func TestLeadingMergeContent_NilMergeValueReturnsOriginalNodes (t * testing.T ) {
1640+ nodes := []* yaml.Node {
1641+ {Kind : yaml .ScalarNode , Tag : "!!merge" , Value : "<<" },
1642+ nil ,
1643+ }
1644+
1645+ result := leadingMergeContent (nodes )
1646+ assert .Equal (t , nodes , result )
1647+ assert .Nil (t , result [1 ])
1648+ }
1649+
1650+ func TestFindKeyNodeFullTop_OddLengthNodesReturnsKeyNode (t * testing.T ) {
1651+ nodes := []* yaml.Node {
1652+ {Kind : yaml .ScalarNode , Tag : "!!str" , Value : "openapi" },
1653+ }
1654+
1655+ k , l , v := FindKeyNodeFullTop ("openapi" , nodes )
1656+ require .NotNil (t , k )
1657+ require .NotNil (t , l )
1658+ require .NotNil (t , v )
1659+ assert .Same (t , nodes [0 ], k )
1660+ assert .Same (t , nodes [0 ], l )
1661+ assert .Same (t , nodes [0 ], v )
1662+ }
1663+
16071664func TestNodeMerge (t * testing.T ) {
16081665 yml := []byte (`openapi: 3.0.3
16091666any-thing: &anchorH
0 commit comments