github.com/newrelic/newrelic-client-go@v1.1.0/pkg/alerts/policies_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/assert" 11 "github.com/stretchr/testify/require" 12 13 "github.com/newrelic/newrelic-client-go/pkg/errors" 14 nr "github.com/newrelic/newrelic-client-go/pkg/testhelpers" 15 ) 16 17 func TestAlertsPolicy_Legacy(t *testing.T) { 18 t.Parallel() 19 20 a := newIntegrationTestClient(t) 21 22 testIntegrationPolicyNameRandStr := nr.RandSeq(5) 23 policy := Policy{ 24 IncidentPreference: IncidentPreferenceTypes.PerPolicy, 25 Name: fmt.Sprintf("test-alert-policy-%s", testIntegrationPolicyNameRandStr), 26 } 27 28 // Test: Create 29 createResult, err := a.CreatePolicy(policy) 30 31 require.NoError(t, err) 32 require.NotNil(t, createResult) 33 34 // Test: Read 35 readResult, err := a.GetPolicy(createResult.ID) 36 37 require.NoError(t, err) 38 require.NotNil(t, readResult) 39 40 // Test: Update 41 createResult.Name = fmt.Sprintf("test-alert-policy-updated-%s", testIntegrationPolicyNameRandStr) 42 updateResult, err := a.UpdatePolicy(*createResult) 43 44 require.NoError(t, err) 45 require.NotNil(t, updateResult) 46 47 // Test: Delete 48 deleteResult, err := a.DeletePolicy(updateResult.ID) 49 50 require.NoError(t, err) 51 require.NotNil(t, *deleteResult) 52 53 // Test: Not found 54 readResult, err = a.GetPolicy(createResult.ID) 55 require.Error(t, err) 56 require.Nil(t, readResult) 57 _, ok := err.(*errors.NotFound) 58 require.True(t, ok) 59 } 60 61 func TestAlertsQueryPolicy_GraphQL_Enabled(t *testing.T) { 62 t.Parallel() 63 64 a := newIntegrationTestClient(t) 65 66 // DTK terraform account 67 accountID := 2520528 68 69 // Create a policy to work with in this test 70 testIntegrationPolicyNameRandStr := nr.RandSeq(5) 71 policy := AlertsPolicyInput{} 72 policy.IncidentPreference = AlertsIncidentPreferenceTypes.PER_POLICY 73 policy.Name = fmt.Sprintf("test-alert-policy-%s", testIntegrationPolicyNameRandStr) 74 75 // Test: Create 76 createResult, err := a.CreatePolicyMutation(accountID, policy) 77 require.NoError(t, err) 78 require.NotNil(t, createResult) 79 80 // Query for the policy we policy we just created 81 queryResult, err := a.QueryPolicy(accountID, createResult.ID) 82 require.NoError(t, err) 83 require.NotNil(t, queryResult) 84 85 // Search 86 searchResults, err := a.QueryPolicySearch(accountID, AlertsPoliciesSearchCriteriaInput{}) 87 require.NoError(t, err) 88 require.NotNil(t, searchResults) 89 90 // Test: Update 91 updatePolicy := AlertsPolicyUpdateInput{} 92 updatePolicy.Name = fmt.Sprintf("test-alert-policy-updated-%s", testIntegrationPolicyNameRandStr) 93 updatePolicy.IncidentPreference = createResult.IncidentPreference 94 95 updateResult, err := a.UpdatePolicyMutation(accountID, createResult.ID, updatePolicy) 96 require.NoError(t, err) 97 require.NotNil(t, updateResult) 98 assert.Equal(t, updateResult.Name, updatePolicy.Name) 99 assert.Equal(t, updateResult.IncidentPreference, updatePolicy.IncidentPreference) 100 101 // Test: Delete 102 deleteResult, err := a.DeletePolicyMutation(accountID, createResult.ID) 103 require.NoError(t, err) 104 require.NotNil(t, deleteResult) 105 106 // Expect that the thing we just deleted does not still exist 107 queryResult, err = a.QueryPolicy(accountID, createResult.ID) 108 require.Error(t, err) 109 require.Nil(t, queryResult) 110 _, ok := err.(*errors.NotFound) 111 require.True(t, ok) 112 }