Fix incorrect propagation of org ID in rule endpionts (#54603)

This commit is contained in:
Alexander Weaver
2022-09-06 14:51:54 -05:00
committed by GitHub
parent 20589f76f4
commit b8d1474609
2 changed files with 54 additions and 6 deletions
@@ -257,6 +257,38 @@ func TestProvisioningApi(t *testing.T) {
})
})
t.Run("exist in non-default orgs", func(t *testing.T) {
t.Run("POST sets expected fields", func(t *testing.T) {
sut := createProvisioningSrvSut(t)
rc := createTestRequestCtx()
rc.OrgID = 3
rule := createTestAlertRule("rule", 1)
response := sut.RoutePostAlertRule(&rc, rule)
require.Equal(t, 201, response.Status())
created := deserializeRule(t, response.Body())
require.Equal(t, int64(3), created.OrgID)
})
t.Run("PUT sets expected fields", func(t *testing.T) {
sut := createProvisioningSrvSut(t)
uid := t.Name()
rule := createTestAlertRule("rule", 1)
rule.UID = uid
insertRuleInOrg(t, sut, rule, 3)
rc := createTestRequestCtx()
rc.OrgID = 3
rule.OrgID = 1 // Set the org back to something wrong, we should still prefer the value from the req context.
response := sut.RoutePutAlertRule(&rc, rule, rule.UID)
require.Equal(t, 200, response.Status())
created := deserializeRule(t, response.Body())
require.Equal(t, int64(3), created.OrgID)
})
})
t.Run("are missing, PUT returns 404", func(t *testing.T) {
sut := createProvisioningSrvSut(t)
rc := createTestRequestCtx()
@@ -543,13 +575,27 @@ func createTestAlertRule(title string, orgID int64) definitions.ProvisionedAlert
}
func insertRule(t *testing.T, srv ProvisioningSrv, rule definitions.ProvisionedAlertRule) {
insertRuleInOrg(t, srv, rule, 1)
}
func insertRuleInOrg(t *testing.T, srv ProvisioningSrv, rule definitions.ProvisionedAlertRule, orgID int64) {
t.Helper()
rc := createTestRequestCtx()
rc.OrgID = orgID
resp := srv.RoutePostAlertRule(&rc, rule)
require.Equal(t, 201, resp.Status())
}
func deserializeRule(t *testing.T, data []byte) definitions.ProvisionedAlertRule {
t.Helper()
var rule definitions.ProvisionedAlertRule
err := json.Unmarshal(data, &rule)
require.NoError(t, err)
return rule
}
var testConfig = `
{
"template_files": {