MCPcopy
hub / github.com/grafana/tempo / TestSplitReqConditionGroups

Function TestSplitReqConditionGroups

pkg/traceql/lenient_extract_test.go:299–528  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

297}
298
299func TestSplitReqConditionGroups(t *testing.T) {
300 testCases := []struct {
301 name, query string
302 expected [][]Condition
303 }{
304 {
305 name: "simple no OR query",
306 query: `{ .attr = "123" }`,
307 expected: [][]Condition{
308 {
309 newCondition(NewAttribute("attr"), OpEqual, NewStaticString("123")),
310 },
311 },
312 },
313 {
314 name: "opnone query",
315 query: `{.attr}`,
316 expected: nil,
317 },
318 {
319 name: "one OR is opnone query",
320 query: `{.attr || .foo = "bar" }`,
321 expected: nil,
322 },
323 {
324 name: "three single condition ORs",
325 query: `{ .attr = "123" || .service = "b" || .env = "staging" }`,
326 expected: [][]Condition{
327 {
328 newCondition(NewAttribute("attr"), OpEqual, NewStaticString("123")),
329 },
330 {
331 newCondition(NewAttribute("service"), OpEqual, NewStaticString("b")),
332 },
333 {
334 newCondition(NewAttribute("env"), OpEqual, NewStaticString("staging")),
335 },
336 },
337 },
338 {
339 name: "one double condition ORs with two single condition ORs",
340 query: `{ (.attr = "123" && .foo = "bar") || .service = "b" || .env = "staging" }`,
341 expected: [][]Condition{
342 {
343 newCondition(NewAttribute("attr"), OpEqual, NewStaticString("123")),
344 newCondition(NewAttribute("foo"), OpEqual, NewStaticString("bar")),
345 },
346 {
347 newCondition(NewAttribute("service"), OpEqual, NewStaticString("b")),
348 },
349 {
350 newCondition(NewAttribute("env"), OpEqual, NewStaticString("staging")),
351 },
352 },
353 },
354 {
355 name: "one single condition AND three single condition ORs",
356 query: `{ name = "abc" && (.attr = "123" || .service = "b" || .env = "staging") }`,

Callers

nothing calls this directly

Calls 7

newConditionFunction · 0.85
NewAttributeFunction · 0.85
NewStaticStringFunction · 0.85
NewIntrinsicFunction · 0.85
ExtractConditionGroupsFunction · 0.85
RunMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected