MCPcopy Index your code
hub / github.com/cloudquery/cloudquery / TestPluginPublishWithUI

Function TestPluginPublishWithUI

cli/cmd/plugin_publish_test.go:202–326  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

200}
201
202func TestPluginPublishWithUI(t *testing.T) {
203 const distDir = "testdata/dist-v1-with-team-package-json"
204
205 t.Setenv("CLOUDQUERY_API_KEY", "testkey")
206 wantCalls := map[string]int{
207 "PUT /plugins/cloudquery/source/test/versions/v1.2.3": 1,
208 "PUT /plugins/cloudquery/source/test/versions/v1.2.3/tables": 1,
209 "POST /plugins/cloudquery/source/test/versions/v1.2.3/docs": 1,
210 "POST /plugins/cloudquery/source/test/versions/v1.2.3/assets/linux_amd64": 1,
211 "POST /plugins/cloudquery/source/test/versions/v1.2.3/assets/darwin_amd64": 1,
212 "PUT /upload-linux": 1,
213 "PUT /upload-darwin": 1,
214 "PUT /upload-uiasset": 3,
215 "POST /plugins/cloudquery/source/test/versions/v1.2.3/uiassets": 1,
216 "PUT /plugins/cloudquery/source/test/versions/v1.2.3/uiassets": 1,
217 }
218 gotCalls := map[string]int{}
219 mu := &gosync.Mutex{}
220 uiID := ""
221 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
222 w.Header().Set("Content-Type", "application/json")
223 mu.Lock()
224 gotCalls[r.Method+" "+r.URL.Path]++
225 mu.Unlock()
226 // t.Log(r.Method, r.URL.Path)
227 switch r.URL.Path {
228 case "/plugins/cloudquery/source/test/versions/v1.2.3":
229 checkAuthHeader(t, r)
230 w.WriteHeader(http.StatusCreated)
231 _, err := w.Write([]byte(`{"name": "v1.2.3"}`))
232 require.NoError(t, err)
233 checkCreatePluginVersionRequest(t, r)
234 case "/plugins/cloudquery/source/test/versions/v1.2.3/tables":
235 checkAuthHeader(t, r)
236 w.WriteHeader(http.StatusCreated)
237 _, err := w.Write([]byte(`{}`))
238 require.NoError(t, err)
239 checkCreateTablesRequest(t, r)
240 case "/plugins/cloudquery/source/test/versions/v1.2.3/docs":
241 checkAuthHeader(t, r)
242 w.WriteHeader(http.StatusCreated)
243 _, err := w.Write([]byte(`{}`))
244 require.NoError(t, err)
245 checkCreateDocsRequest(t, r, distDir)
246 case "/plugins/cloudquery/source/test/versions/v1.2.3/assets/linux_amd64":
247 checkAuthHeader(t, r)
248 w.WriteHeader(http.StatusCreated)
249 _, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-linux")))
250 require.NoError(t, err)
251 case "/plugins/cloudquery/source/test/versions/v1.2.3/assets/darwin_amd64":
252 checkAuthHeader(t, r)
253 w.WriteHeader(http.StatusCreated)
254 _, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-darwin")))
255 require.NoError(t, err)
256 case "/upload-linux":
257 w.WriteHeader(http.StatusOK)
258 _, err := w.Write([]byte(`{}`))
259 require.NoError(t, err)

Callers

nothing calls this directly

Calls 10

checkAuthHeaderFunction · 0.85
checkCreateTablesRequestFunction · 0.85
checkCreateDocsRequestFunction · 0.85
testCommandArgsFunction · 0.85
NewCmdRootFunction · 0.70
WriteMethod · 0.65
CloseMethod · 0.65
SetMethod · 0.45
HeaderMethod · 0.45

Tested by

no test coverage detected