|
|
|
@ -25,64 +25,64 @@ func TestLotexRuler_ValidateAndGetPrefix(t *testing.T) { |
|
|
|
|
err error |
|
|
|
|
}{ |
|
|
|
|
{ |
|
|
|
|
name: "with an invalid datasource ID", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "AAABBB"}, |
|
|
|
|
err: errors.New("datasource ID is invalid"), |
|
|
|
|
name: "with an empty datasource UID", |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": ""}, |
|
|
|
|
err: errors.New("datasource UID is invalid"), |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: "with an error while trying to fetch the datasource", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "164"}, |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": "d164"}, |
|
|
|
|
datasourceCache: fakeCacheService{err: models.ErrDataSourceNotFound}, |
|
|
|
|
err: errors.New("data source not found"), |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: "with an empty datasource URL", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "164"}, |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": "d164"}, |
|
|
|
|
datasourceCache: fakeCacheService{datasource: &models.DataSource{}}, |
|
|
|
|
err: errors.New("URL for this data source is empty"), |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: "with an unsupported datasource type", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "164"}, |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": "d164"}, |
|
|
|
|
datasourceCache: fakeCacheService{datasource: &models.DataSource{Url: "http://loki.com"}}, |
|
|
|
|
err: errors.New("unexpected datasource type. expecting loki or prometheus"), |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: "with a Loki datasource", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "164"}, |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": "d164"}, |
|
|
|
|
datasourceCache: fakeCacheService{datasource: &models.DataSource{Url: "http://loki.com", Type: LokiDatasourceType}}, |
|
|
|
|
expected: "/api/prom/rules", |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: "with a Prometheus datasource", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "164"}, |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": "d164"}, |
|
|
|
|
datasourceCache: fakeCacheService{datasource: &models.DataSource{Url: "http://loki.com", Type: PrometheusDatasourceType}}, |
|
|
|
|
expected: "/rules", |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: "with a Prometheus datasource and subtype of Cortex", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "164"}, |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": "d164"}, |
|
|
|
|
urlParams: "?subtype=cortex", |
|
|
|
|
datasourceCache: fakeCacheService{datasource: &models.DataSource{Url: "http://loki.com", Type: PrometheusDatasourceType}}, |
|
|
|
|
expected: "/rules", |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: "with a Prometheus datasource and subtype of Mimir", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "164"}, |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": "d164"}, |
|
|
|
|
urlParams: "?subtype=mimir", |
|
|
|
|
datasourceCache: fakeCacheService{datasource: &models.DataSource{Url: "http://loki.com", Type: PrometheusDatasourceType}}, |
|
|
|
|
expected: "/config/v1/rules", |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: "with a Prometheus datasource and subtype of Prometheus", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "164"}, |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": "d164"}, |
|
|
|
|
urlParams: "?subtype=prometheus", |
|
|
|
|
datasourceCache: fakeCacheService{datasource: &models.DataSource{Url: "http://loki.com", Type: PrometheusDatasourceType}}, |
|
|
|
|
expected: "/rules", |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: "with a Prometheus datasource and no subtype", |
|
|
|
|
namedParams: map[string]string{":DatasourceID": "164"}, |
|
|
|
|
namedParams: map[string]string{":DatasourceUID": "d164"}, |
|
|
|
|
datasourceCache: fakeCacheService{datasource: &models.DataSource{Url: "http://loki.com", Type: PrometheusDatasourceType}}, |
|
|
|
|
expected: "/rules", |
|
|
|
|
}, |
|
|
|
|