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  }