@@ -1410,6 +1410,227 @@ func TestFilterSpan(t *testing.T) {
14101410 },
14111411 satisfied : false ,
14121412 },
1413+ {
1414+ filter : & FilterFields {
1415+ QueryAndOr : ptr .Of (QueryAndOrEnumAnd ),
1416+ FilterFields : []* FilterField {
1417+ {
1418+ FieldName : SpanFieldParentID ,
1419+ FieldType : FieldTypeString ,
1420+ Values : []string {"0" , "" },
1421+ QueryType : ptr .Of (QueryTypeEnumIn ),
1422+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1423+ SubFilter : & FilterFields {
1424+ FilterFields : []* FilterField {
1425+ {
1426+ FieldName : "abc" ,
1427+ FieldType : FieldTypeBool ,
1428+ Values : []string {"true" },
1429+ QueryType : ptr .Of (QueryTypeEnumEq ),
1430+ },
1431+ },
1432+ },
1433+ },
1434+ },
1435+ },
1436+ span : & Span {
1437+ ParentID : "0" ,
1438+ },
1439+ satisfied : true ,
1440+ },
1441+ {
1442+ filter : & FilterFields {
1443+ QueryAndOr : ptr .Of (QueryAndOrEnumAnd ),
1444+ FilterFields : []* FilterField {
1445+ {
1446+ FieldName : SpanFieldParentID ,
1447+ FieldType : FieldTypeString ,
1448+ Values : []string {"0" , "" },
1449+ QueryType : ptr .Of (QueryTypeEnumIn ),
1450+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1451+ SubFilter : & FilterFields {
1452+ FilterFields : []* FilterField {
1453+ {
1454+ FieldName : "abc" ,
1455+ FieldType : FieldTypeBool ,
1456+ Values : []string {"true" },
1457+ QueryType : ptr .Of (QueryTypeEnumEq ),
1458+ },
1459+ },
1460+ },
1461+ },
1462+ },
1463+ },
1464+ span : & Span {
1465+ ParentID : "" ,
1466+ },
1467+ satisfied : true ,
1468+ },
1469+ {
1470+ filter : & FilterFields {
1471+ QueryAndOr : ptr .Of (QueryAndOrEnumAnd ),
1472+ FilterFields : []* FilterField {
1473+ {
1474+ FieldName : SpanFieldParentID ,
1475+ FieldType : FieldTypeString ,
1476+ Values : []string {"0" , "" },
1477+ QueryType : ptr .Of (QueryTypeEnumIn ),
1478+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1479+ SubFilter : & FilterFields {
1480+ FilterFields : []* FilterField {
1481+ {
1482+ FieldName : "abc" ,
1483+ FieldType : FieldTypeBool ,
1484+ Values : []string {"true" },
1485+ QueryType : ptr .Of (QueryTypeEnumEq ),
1486+ },
1487+ },
1488+ },
1489+ },
1490+ },
1491+ },
1492+ span : & Span {
1493+ ParentID : "anc" ,
1494+ },
1495+ satisfied : false ,
1496+ },
1497+ {
1498+ filter : & FilterFields {
1499+ QueryAndOr : ptr .Of (QueryAndOrEnumAnd ),
1500+ FilterFields : []* FilterField {
1501+ {
1502+ FieldName : SpanFieldParentID ,
1503+ FieldType : FieldTypeString ,
1504+ Values : []string {"0" , "" },
1505+ QueryType : ptr .Of (QueryTypeEnumIn ),
1506+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1507+ SubFilter : & FilterFields {
1508+ FilterFields : []* FilterField {
1509+ {
1510+ FieldName : "abc" ,
1511+ FieldType : FieldTypeBool ,
1512+ Values : []string {"true" },
1513+ QueryType : ptr .Of (QueryTypeEnumEq ),
1514+ },
1515+ },
1516+ },
1517+ },
1518+ },
1519+ },
1520+ span : & Span {
1521+ ParentID : "cnv" ,
1522+ TagsBool : map [string ]bool {
1523+ "abc" : true ,
1524+ },
1525+ },
1526+ satisfied : true ,
1527+ },
1528+ {
1529+ filter : & FilterFields {
1530+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1531+ FilterFields : []* FilterField {
1532+ {
1533+ FieldName : SpanFieldParentID ,
1534+ FieldType : FieldTypeString ,
1535+ Values : []string {"0" },
1536+ QueryType : ptr .Of (QueryTypeEnumIn ),
1537+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1538+ SubFilter : & FilterFields {
1539+ FilterFields : []* FilterField {
1540+ {
1541+ FieldName : "abc" ,
1542+ FieldType : FieldTypeBool ,
1543+ Values : []string {"true" },
1544+ QueryType : ptr .Of (QueryTypeEnumEq ),
1545+ },
1546+ },
1547+ },
1548+ },
1549+ {
1550+ FieldName : SpanFieldTraceId ,
1551+ FieldType : FieldTypeString ,
1552+ Values : []string {"123" },
1553+ QueryType : ptr .Of (QueryTypeEnumEq ),
1554+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1555+ },
1556+ },
1557+ },
1558+ span : & Span {
1559+ TraceID : "123" ,
1560+ },
1561+ satisfied : true ,
1562+ },
1563+ {
1564+ filter : & FilterFields {
1565+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1566+ FilterFields : []* FilterField {
1567+ {
1568+ FieldName : SpanFieldParentID ,
1569+ FieldType : FieldTypeString ,
1570+ Values : []string {"0" },
1571+ QueryType : ptr .Of (QueryTypeEnumIn ),
1572+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1573+ SubFilter : & FilterFields {
1574+ FilterFields : []* FilterField {
1575+ {
1576+ FieldName : "abc" ,
1577+ FieldType : FieldTypeBool ,
1578+ Values : []string {"true" },
1579+ QueryType : ptr .Of (QueryTypeEnumEq ),
1580+ },
1581+ },
1582+ },
1583+ },
1584+ {
1585+ FieldName : SpanFieldTraceId ,
1586+ FieldType : FieldTypeString ,
1587+ Values : []string {"123" },
1588+ QueryType : ptr .Of (QueryTypeEnumEq ),
1589+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1590+ },
1591+ },
1592+ },
1593+ span : & Span {
1594+ ParentID : "0" ,
1595+ },
1596+ satisfied : true ,
1597+ },
1598+ {
1599+ filter : & FilterFields {
1600+ QueryAndOr : ptr .Of (QueryAndOrEnumAnd ),
1601+ FilterFields : []* FilterField {
1602+ {
1603+ FieldName : SpanFieldParentID ,
1604+ FieldType : FieldTypeString ,
1605+ Values : []string {"0" },
1606+ QueryType : ptr .Of (QueryTypeEnumIn ),
1607+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1608+ SubFilter : & FilterFields {
1609+ FilterFields : []* FilterField {
1610+ {
1611+ FieldName : "abc" ,
1612+ FieldType : FieldTypeBool ,
1613+ Values : []string {"true" },
1614+ QueryType : ptr .Of (QueryTypeEnumEq ),
1615+ },
1616+ },
1617+ },
1618+ },
1619+ {
1620+ FieldName : SpanFieldTraceId ,
1621+ FieldType : FieldTypeString ,
1622+ Values : []string {"123" },
1623+ QueryType : ptr .Of (QueryTypeEnumEq ),
1624+ QueryAndOr : ptr .Of (QueryAndOrEnumOr ),
1625+ },
1626+ },
1627+ },
1628+ span : & Span {
1629+ ParentID : "0" ,
1630+ TraceID : "123" ,
1631+ },
1632+ satisfied : true ,
1633+ },
14131634 }
14141635 for _ , tc := range tests {
14151636 assert .Equal (t , tc .filter .Satisfied (tc .span ), tc .satisfied )
0 commit comments