(t *testing.T)
| 200 | } |
| 201 | |
| 202 | func 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) |
nothing calls this directly
no test coverage detected