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 }