(t *testing.T)
| 133 | } |
| 134 | |
| 135 | func TestFetchAllPages_PageQueryParamsIncrement(t *testing.T) { |
| 136 | viper.Set("CRONITOR_API_KEY", "test-key") |
| 137 | defer viper.Set("CRONITOR_API_KEY", "") |
| 138 | |
| 139 | var receivedPages []string |
| 140 | |
| 141 | server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 142 | page := r.URL.Query().Get("page") |
| 143 | receivedPages = append(receivedPages, page) |
| 144 | |
| 145 | var body string |
| 146 | switch page { |
| 147 | case "", "1": |
| 148 | body = `{"items":[{"id":1}]}` |
| 149 | case "2": |
| 150 | body = `{"items":[{"id":2}]}` |
| 151 | default: |
| 152 | body = `{"items":[]}` |
| 153 | } |
| 154 | w.Header().Set("Content-Type", "application/json") |
| 155 | w.WriteHeader(200) |
| 156 | w.Write([]byte(body)) |
| 157 | })) |
| 158 | defer server.Close() |
| 159 | |
| 160 | client := &lib.APIClient{ |
| 161 | BaseURL: server.URL, |
| 162 | ApiKey: "test-key", |
| 163 | UserAgent: "test", |
| 164 | } |
| 165 | |
| 166 | _, err := FetchAllPages(client, "/monitors", nil, "items") |
| 167 | if err != nil { |
| 168 | t.Fatalf("unexpected error: %v", err) |
| 169 | } |
| 170 | |
| 171 | // Expect page params: "1", "2", "3" |
| 172 | if len(receivedPages) != 3 { |
| 173 | t.Fatalf("expected 3 page requests, got %d: %v", len(receivedPages), receivedPages) |
| 174 | } |
| 175 | |
| 176 | for i, expected := range []string{"1", "2", "3"} { |
| 177 | if receivedPages[i] != expected { |
| 178 | t.Errorf("request %d: expected page=%s, got page=%s", i, expected, receivedPages[i]) |
| 179 | } |
| 180 | } |
| 181 | } |
| 182 | |
| 183 | func TestFetchAllPages_SafetyLimitAt200(t *testing.T) { |
| 184 | viper.Set("CRONITOR_API_KEY", "test-key") |
nothing calls this directly
no test coverage detected