//nolint:dupl package promassert_test import ( "testing" "edge-infra.dev/pkg/lib/promassert" ) func TestSimpleAssertions(t *testing.T) { var mets = []promassert.ParsedMetrics{ promassert.Counter(c1name), promassert.Gauge(g1name), } for _, p := range mets { var happyResults = []bool{ p.Exists(t), p.Equals(t, c1value), p.NotEquals(t, c1value+1), p.GreaterThan(t, c1value-1), p.GreaterThanOrEquals(t, c1value), p.GreaterThanOrEquals(t, c1value-1), p.LessThan(t, c1value+1), p.LessThanOrEquals(t, c1value), p.LessThanOrEquals(t, c1value+1), } // Ensure all the happy tests returned true. for i, result := range happyResults { if !result { t.Errorf("Happy assertion %d should have returned true", i) } } var sadResults = []bool{ p.NotExists(nil), p.Equals(nil, c1value+1), p.NotEquals(nil, c1value), p.GreaterThan(nil, c1value), p.GreaterThan(nil, c1value+1), p.GreaterThanOrEquals(nil, c1value+1), p.LessThan(nil, c1value), p.LessThan(nil, c1value-1), p.LessThanOrEquals(nil, c1value-1), p.LabelKeysExist(nil, cv1keys...), p.IsNaN(nil), p.IsInf(nil, 0), } for i, result := range sadResults { if result { t.Errorf("Sad assertion %d should have returned false", i) } } } } func TestSimpleVectorAssertions(t *testing.T) { // test the assertions on an unfiltered vecs var mets = []promassert.ParsedMetrics{ promassert.Counter(cv1name), promassert.Gauge(gv1name), } const sum = cv1value1 + cv1value2 + cv1value3 + cv1value4 for _, p := range mets { var happyResults = []bool{ p.Exists(t), p.Equals(t, sum), p.NotEquals(t, 0), p.GreaterThan(t, sum-1), p.GreaterThanOrEquals(t, sum-1), p.GreaterThanOrEquals(t, sum), p.LessThan(t, sum+1), p.LessThanOrEquals(t, sum+1), p.LessThanOrEquals(t, sum), p.LabelKeysExist(t, cv1keys[0]), p.LabelKeysExist(t, cv1keys[1]), p.LabelKeysExist(t, cv1keys[2]), p.LabelKeysExist(t, cv1keys[0], cv1keys[1]), p.LabelKeysExist(t, cv1keys[1], cv1keys[0]), p.LabelKeysExist(t, cv1keys[0], cv1keys[2]), p.LabelKeysExist(t, cv1keys[2], cv1keys[0]), p.LabelKeysExist(t, cv1keys[1], cv1keys[2]), p.LabelKeysExist(t, cv1keys[2], cv1keys[1]), p.LabelKeysExist(t, cv1keys...), p.LabelKeysExist(t, cv1keys[0], cv1keys[2], cv1keys[1]), p.LabelKeysExist(t, cv1keys[1], cv1keys[0], cv1keys[2]), p.LabelKeysExist(t, cv1keys[1], cv1keys[2], cv1keys[0]), p.LabelKeysExist(t, cv1keys[2], cv1keys[0], cv1keys[1]), p.LabelKeysExist(t, cv1keys[2], cv1keys[1], cv1keys[0]), } for i, result := range happyResults { if !result { t.Errorf("Happy vec assertion %d should have returned true", i) } } var sadResults = []bool{ p.NotExists(nil), p.Equals(nil, 0), p.NotEquals(nil, sum), p.GreaterThan(nil, sum), p.GreaterThan(nil, sum+1), p.GreaterThanOrEquals(nil, sum+1), p.LessThan(nil, sum), p.LessThan(nil, sum-1), p.LessThanOrEquals(nil, sum-1), p.LabelKeysExist(nil, "asdf"), p.IsNaN(nil), p.IsInf(nil, 0), } for i, result := range sadResults { if result { t.Errorf("Sad vec assertion %d should have returned false", i) } } } }