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  }