github.1485827954.workers.dev/newrelic/newrelic-client-go@v1.1.0/pkg/apiaccess/keys_integration_test.go (about)

     1  //go:build integration
     2  // +build integration
     3  
     4  package apiaccess
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  
    11  	mock "github.com/newrelic/newrelic-client-go/pkg/testhelpers"
    12  )
    13  
    14  func TestIntegrationAPIAccess_IngestKeys(t *testing.T) {
    15  	t.Parallel()
    16  
    17  	testAccountID, err := mock.GetTestAccountID()
    18  	if err != nil {
    19  		t.Skipf("%s", err)
    20  	}
    21  
    22  	client := newIntegrationTestClient(t)
    23  
    24  	// Setup
    25  	createInput := APIAccessCreateInput{
    26  		Ingest: []APIAccessCreateIngestKeyInput{
    27  			{
    28  				AccountID:  testAccountID,
    29  				IngestType: "BROWSER",
    30  				Name:       "test-integration-api-access",
    31  				Notes:      "This ingest key was created by an integration test.",
    32  			},
    33  		},
    34  	}
    35  
    36  	// Test: Create
    37  	createResult, err := client.CreateAPIAccessKeys(createInput)
    38  	require.NoError(t, err)
    39  	require.NotNil(t, createResult)
    40  
    41  	// Test: Get
    42  	getResult, err := client.GetAPIAccessKey(createResult[0].ID, createResult[0].Type)
    43  	require.NoError(t, err)
    44  	require.NotNil(t, getResult)
    45  
    46  	// Test: Update
    47  	updateResult, err := client.UpdateAPIAccessKeys(APIAccessUpdateInput{
    48  		Ingest: []APIAccessUpdateIngestKeyInput{
    49  			{
    50  				KeyID: createResult[0].ID,
    51  				Name:  createResult[0].Name,
    52  				Notes: "testing notes update",
    53  			},
    54  		},
    55  	})
    56  	require.NoError(t, err)
    57  	require.NotNil(t, updateResult)
    58  
    59  	// Test: Delete
    60  	deleteResult, err := client.DeleteAPIAccessKey(APIAccessDeleteInput{
    61  		IngestKeyIDs: []string{createResult[0].ID},
    62  	})
    63  	require.NoError(t, err)
    64  	require.NotNil(t, deleteResult)
    65  }
    66  
    67  func TestIntegrationAPIAccess_UserKeys(t *testing.T) {
    68  	t.Parallel()
    69  
    70  	userID, err := mock.GetTestUserID()
    71  	if err != nil {
    72  		t.Skipf("Skipping `TestIntegrationAPIAccess_UserKeys` integration test due error: %v", err)
    73  		return
    74  	}
    75  
    76  	testAccountID, err := mock.GetTestAccountID()
    77  	if err != nil {
    78  		t.Skipf("%s", err)
    79  	}
    80  
    81  	client := newIntegrationTestClient(t)
    82  
    83  	// Setup
    84  	createInput := APIAccessCreateInput{
    85  		User: []APIAccessCreateUserKeyInput{
    86  			{
    87  				AccountID: testAccountID,
    88  				Name:      "test-integration-api-access",
    89  				Notes:     "This user key was created by an integration test.",
    90  				UserID:    userID,
    91  			},
    92  		},
    93  	}
    94  
    95  	// Test: Create
    96  	createResult, err := client.CreateAPIAccessKeys(createInput)
    97  	require.NoError(t, err)
    98  	require.NotNil(t, createResult)
    99  
   100  	// Test: Get
   101  	getResult, err := client.GetAPIAccessKey(createResult[0].ID, createResult[0].Type)
   102  	require.NoError(t, err)
   103  	require.NotNil(t, getResult)
   104  
   105  	// Test: Search
   106  	searchResult, err := client.SearchAPIAccessKeys(APIAccessKeySearchQuery{
   107  		Scope: APIAccessKeySearchScope{
   108  			AccountIDs: []int{testAccountID},
   109  		},
   110  		Types: []APIAccessKeyType{APIAccessKeyTypeTypes.USER},
   111  	})
   112  	require.NoError(t, err)
   113  	require.Greater(t, len(searchResult), 0)
   114  
   115  	// Test: Update
   116  	updateResult, err := client.UpdateAPIAccessKeys(APIAccessUpdateInput{
   117  		User: []APIAccessUpdateUserKeyInput{
   118  			{
   119  				KeyID: createResult[0].ID,
   120  				Name:  createResult[0].Name,
   121  				Notes: "testing notes update",
   122  			},
   123  		},
   124  	})
   125  	require.NoError(t, err)
   126  	require.NotNil(t, updateResult)
   127  	require.Equal(t, "testing notes update", updateResult[0].Notes)
   128  
   129  	// Test: Delete
   130  	deleteResult, err := client.DeleteAPIAccessKey(APIAccessDeleteInput{
   131  		UserKeyIDs: []string{createResult[0].ID},
   132  	})
   133  	require.NoError(t, err)
   134  	require.NotNil(t, deleteResult)
   135  }