(t *testing.T)
| 918 | } |
| 919 | |
| 920 | func 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 | } |
nothing calls this directly
no test coverage detected