github.com/argoproj/argo-cd/v3@v3.2.1/applicationset/services/plugin/plugin_service_test.go (about) 1 package plugin 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "net/http" 7 "net/http/httptest" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestPlugin(t *testing.T) { 15 expectedJSON := `{"parameters": [{"number":123,"digest":"sha256:942ae2dfd73088b54d7151a3c3fd5af038a51c50029bfcfd21f1e650d9579967"},{"number":456,"digest":"sha256:224e68cc69566e5cbbb76034b3c42cd2ed57c1a66720396e1c257794cb7d68c1"}]}` 16 token := "0bc57212c3cbbec69d20b34c507284bd300def5b" 17 18 handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 19 w.Header().Set("Content-Type", "application/json") 20 authHeader := r.Header.Get("Authorization") 21 if authHeader != "Bearer "+token { 22 w.WriteHeader(http.StatusUnauthorized) 23 return 24 } 25 _, err := w.Write([]byte(expectedJSON)) 26 if err != nil { 27 assert.NoError(t, fmt.Errorf("Error Write %w", err)) 28 } 29 }) 30 ts := httptest.NewServer(handler) 31 defer ts.Close() 32 33 client, err := NewPluginService("plugin-test", ts.URL, token, 0) 34 require.NoError(t, err) 35 36 data, err := client.List(t.Context(), nil) 37 require.NoError(t, err) 38 39 var expectedData ServiceResponse 40 err = json.Unmarshal([]byte(expectedJSON), &expectedData) 41 require.NoError(t, err) 42 assert.Equal(t, &expectedData, data) 43 }