Advisor: Avoid one GCOM request per plugin (#105180)

This commit is contained in:
Andres Martinez Gotor
2025-05-12 09:45:56 +02:00
committed by GitHub
parent cb28213f1d
commit 0d4884cb3b
13 changed files with 137 additions and 115 deletions
+15 -7
View File
@@ -108,16 +108,17 @@ func TestGetPluginArchive(t *testing.T) {
}
}
func TestPluginInfo(t *testing.T) {
func TestPluginIndex(t *testing.T) {
const (
pluginID = "grafana-test-datasource"
)
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, fmt.Sprintf("/%s", pluginID), r.URL.Path)
require.Equal(t, "12.0.0", r.Header.Get("grafana-version"))
require.Equal(t, "grafana 12.0.0", r.Header.Get("User-Agent"))
w.WriteHeader(http.StatusOK)
w.Header().Set("Content-Type", "application/json")
_, _ = fmt.Fprintf(w, `{ "id": 1, "slug": "%s", "status": "active" }`, pluginID)
_, _ = fmt.Fprintf(w, `{"items": [{ "id": 1, "slug": "%s", "status": "active" }]}`, pluginID)
}))
t.Cleanup(srv.Close)
@@ -126,11 +127,18 @@ func TestPluginInfo(t *testing.T) {
BaseURL: srv.URL,
Logger: log.NewTestPrettyLogger(),
})
pi, err := m.PluginInfo(context.Background(), pluginID, CompatOpts{})
pi, err := m.GetPluginsInfo(context.Background(), CompatOpts{
grafanaVersion: "12.0.0",
system: SystemCompatOpts{
os: "darwin",
arch: "amd64",
},
})
require.NoError(t, err)
require.Equal(t, 1, pi.ID)
require.Equal(t, pluginID, pi.Slug)
require.Equal(t, "active", pi.Status)
require.Len(t, pi, 1)
require.Equal(t, 1, pi[0].ID)
require.Equal(t, pluginID, pi[0].Slug)
require.Equal(t, "active", pi[0].Status)
}
func verifyArchive(t *testing.T, archive *PluginArchive) {