MCPcopy Index your code
hub / github.com/cortexproject/cortex / TestRulesAPIWithNoRules

Function TestRulesAPIWithNoRules

integration/ruler_test.go:920–978  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

918}
919
920func TestRulesAPIWithNoRules(t *testing.T) {
921 s, err := e2e.NewScenario(networkName)
922 require.NoError(t, err)
923 defer s.Close()
924
925 // Start dependencies.
926 consul := e2edb.NewConsul()
927 minio := e2edb.NewMinio(9000, rulestoreBucketName)
928 require.NoError(t, s.StartAndWaitReady(consul, minio))
929
930 // Configure the ruler.
931 overrides := map[string]string{
932 // Since we're not going to run any rule, we don't need the
933 // store-gateway to be configured to a valid address.
934 "-querier.store-gateway-addresses": "localhost:12345",
935 // Enable the bucket index so we can skip the initial bucket scan.
936 "-blocks-storage.bucket-store.bucket-index.enabled": "true",
937 "-ruler.poll-interval": "5s",
938 }
939
940 rulerFlags := mergeFlags(
941 BlocksStorageFlags(),
942 RulerFlags(),
943 RulerShardingFlags(consul.NetworkHTTPEndpoint()),
944 overrides,
945 )
946
947 // Start rulers.
948 ruler1 := e2ecortex.NewRuler("ruler-1", consul.NetworkHTTPEndpoint(), rulerFlags, "")
949 ruler2 := e2ecortex.NewRuler("ruler-2", consul.NetworkHTTPEndpoint(), rulerFlags, "")
950 ruler3 := e2ecortex.NewRuler("ruler-3", consul.NetworkHTTPEndpoint(), rulerFlags, "")
951 require.NoError(t, s.StartAndWaitReady(ruler1, ruler2, ruler3))
952
953 time.Sleep(5 * time.Second)
954 c, err := e2ecortex.NewClient("", "", "", ruler1.HTTPEndpoint(), "user-1")
955 require.NoError(t, err)
956
957 testCases := map[string]struct {
958 filter e2ecortex.RuleFilter
959 }{
960 "List Rule Groups With Filter": {
961 filter: e2ecortex.RuleFilter{
962 MaxRuleGroup: 20,
963 },
964 },
965 "List All Rule Groups With No Filter": {
966 filter: e2ecortex.RuleFilter{},
967 },
968 }
969
970 for name, tc := range testCases {
971 t.Run(name, func(t *testing.T) {
972 actualGroups, token, err := c.GetPrometheusRules(tc.filter)
973 require.NoError(t, err)
974 assert.Empty(t, actualGroups)
975 assert.Empty(t, token)
976 })
977 }

Callers

nothing calls this directly

Calls 9

CloseMethod · 0.95
StartAndWaitReadyMethod · 0.95
GetPrometheusRulesMethod · 0.95
NewScenarioFunction · 0.92
NewRulerFunction · 0.92
NewClientFunction · 0.92
NetworkHTTPEndpointMethod · 0.80
HTTPEndpointMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected