github.com/argoproj/argo-cd/v2@v2.10.9/applicationset/services/plugin/plugin_service_test.go (about) 1 package plugin 2 3 import ( 4 "context" 5 "encoding/json" 6 "fmt" 7 "net/http" 8 "net/http/httptest" 9 "testing" 10 11 "github.com/stretchr/testify/assert" 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 27 if err != nil { 28 assert.NoError(t, fmt.Errorf("Error Write %v", err)) 29 } 30 }) 31 ts := httptest.NewServer(handler) 32 defer ts.Close() 33 34 client, err := NewPluginService(context.Background(), "plugin-test", ts.URL, token, 0) 35 36 if err != nil { 37 t.Errorf("unexpected error: %v", err) 38 } 39 40 data, err := client.List(context.Background(), nil) 41 42 if err != nil { 43 t.Errorf("unexpected error: %v", err) 44 } 45 46 var expectedData ServiceResponse 47 err = json.Unmarshal([]byte(expectedJSON), &expectedData) 48 if err != nil { 49 t.Fatal(err) 50 } 51 assert.Equal(t, &expectedData, data) 52 }