github.com/newrelic/newrelic-client-go@v1.1.0/pkg/alerts/plugins_conditions_integration_test.go (about) 1 //go:build integration 2 // +build integration 3 4 package alerts 5 6 import ( 7 "fmt" 8 "testing" 9 10 "github.com/stretchr/testify/require" 11 12 nr "github.com/newrelic/newrelic-client-go/pkg/testhelpers" 13 ) 14 15 func TestIntegrationPluginsConditions(t *testing.T) { 16 t.Skip() 17 t.Parallel() 18 19 var ( 20 randomString = nr.RandSeq(5) 21 alertPolicy = Policy{ 22 Name: fmt.Sprintf("test-integration-plugins-policy-%s", randomString), 23 IncidentPreference: "PER_POLICY", 24 } 25 conditionName = fmt.Sprintf("test-integration-plugins-condition-%s", randomString) 26 conditionNameUpdated = fmt.Sprintf("test-integration-plugins-condition-updated-%s", randomString) 27 condition = PluginsCondition{ 28 Name: conditionName, 29 Enabled: true, 30 Entities: []string{"212222915"}, 31 Metric: "Component/Connection/Clients[connections]", 32 MetricDescription: "Connected Clients", 33 RunbookURL: "https://example.com/runbook", 34 Terms: []ConditionTerm{ 35 { 36 Duration: 5, 37 Operator: "above", 38 Priority: "critical", 39 Threshold: 10, 40 TimeFunction: "all", 41 }, 42 }, 43 ValueFunction: "average", 44 Plugin: AlertPlugin{ 45 ID: "21709", 46 GUID: "net.kenjij.newrelic_redis_plugin", 47 }, 48 } 49 ) 50 51 client := newIntegrationTestClient(t) 52 53 // Setup 54 policy, err := client.CreatePolicy(alertPolicy) 55 56 require.NoError(t, err) 57 58 // Deferred teardown 59 defer func() { 60 _, err := client.DeletePolicy(policy.ID) 61 62 if err != nil { 63 t.Logf("error cleaning up alert policy %d (%s): %s", policy.ID, policy.Name, err) 64 } 65 }() 66 67 // Test: Create 68 createResult, err := client.CreatePluginsCondition(policy.ID, condition) 69 70 require.NoError(t, err) 71 require.NotNil(t, createResult) 72 73 // Test: List 74 listResult, err := client.ListPluginsConditions(policy.ID) 75 76 require.NoError(t, err) 77 require.Greater(t, len(listResult), 0) 78 79 // Test: Get 80 readResult, err := client.GetPluginsCondition(policy.ID, createResult.ID) 81 82 require.NoError(t, err) 83 require.NotNil(t, readResult) 84 85 // Test: Update 86 createResult.Name = conditionNameUpdated 87 updateResult, err := client.UpdatePluginsCondition(*createResult) 88 89 require.NoError(t, err) 90 require.NotNil(t, updateResult) 91 require.Equal(t, conditionNameUpdated, updateResult.Name) 92 93 // Test: Delete 94 result, err := client.DeletePluginsCondition(createResult.ID) 95 96 require.NoError(t, err) 97 require.NotNil(t, result) 98 }