fix(retry): починка красного, полный прогон тестов (#57) #61

Merged
eSlider merged 1 commits from chore/test-green#57 into main 2026-09-16 22:37:05 +01:00
Owner

Часть эпика #53 (W4). Все тесты зелёные: unit, race, integration.

Что починено

  • Известный долг: cmd/office/fetch/task_integration_test.go не компилировался (loader.TaskFields undefined) — метод давно заменён на loader.DetailForm. Тест переписан на актуальный API (DetailForm → FormFields.Primary/Secondary). go vet -tags=integration ./... и сборка с тегом проходят.
  • 429 openresty: транзитные ответы edge (429/502/503/504) не ретраились вне bulk-тулов, из-за чего параллельный go test -tags=integration ./... падал. Теперь транспорт (getJSON/formRequest/deleteReq/postJSON/putJSON/multipart upload), Query и AuthenticateContext/ensureToken идут через retryRaw (DefaultRetryPolicy). Добавлены unit-тесты Transient/DoRetry.

Логи

  • go build ./... && go vet ./... && go vet -tags=integration ./... — OK
  • go test ./... — ok 11 пакетов, FAIL 0
  • go test -race ./... — ok 11, FAIL 0, data races 0
  • go test -tags=integration -v ./... (REST + ES 127.0.0.1:9200 + live MySQL DSN, ONLYOFFICE_PG_TEST_FILE_ID=22484/FOLDER_ID=649) — PASS 318, FAIL 0, SKIP 13
  • Корневой пакет отдельно: 136 PASS / 0 FAIL (до фикса — 3 FAIL)
  • gitleaks: no leaks found

SKIP (корректные, с причиной)

  • TestIntegrationMinioFallback — нет MINIO_ACCESS_KEY/SECRET_KEY
  • TestIntegrationMailList, TestIntegrationMailInboxDetail, TestIntegrationPreviewMailFromAPI — пустой inbox на инстансе
  • TestIntegrationUpdateTaskTitleDescription, TestIntegrationTaskFieldsFromLiveAPI, TestIntegrationPreviewTaskFromAPI — на инстансе 0 задач
  • TestIntegrationPreviewOpportunityFromAPI — 0 opportunities
  • TestIntegrationPreviewFileFromAPI, TestIntegrationPreviewCSVFromDownloadedFile — не задан ONLYOFFICE_PROJECT_ID
  • TestTXTToDOCXPreservesLines, TestMDDocxRoundTrip — нет pandoc; TestOptimizePDF — нет фикстуры

Изменённые файлы

auth.go, http.go, request.go, retry.go, retry_test.go, cmd/office/fetch/task_integration_test.go, AGENTS.md

Часть эпика #53 (W4). Все тесты зелёные: unit, race, integration. ## Что починено - **Известный долг:** `cmd/office/fetch/task_integration_test.go` не компилировался (`loader.TaskFields undefined`) — метод давно заменён на `loader.DetailForm`. Тест переписан на актуальный API (`DetailForm` → `FormFields.Primary/Secondary`). `go vet -tags=integration ./...` и сборка с тегом проходят. - **429 openresty:** транзитные ответы edge (429/502/503/504) не ретраились вне bulk-тулов, из-за чего параллельный `go test -tags=integration ./...` падал. Теперь транспорт (`getJSON`/`formRequest`/`deleteReq`/`postJSON`/`putJSON`/multipart upload), `Query` и `AuthenticateContext`/`ensureToken` идут через `retryRaw` (`DefaultRetryPolicy`). Добавлены unit-тесты `Transient`/`DoRetry`. ## Логи - `go build ./... && go vet ./... && go vet -tags=integration ./...` — OK - `go test ./...` — ok 11 пакетов, FAIL 0 - `go test -race ./...` — ok 11, FAIL 0, data races 0 - `go test -tags=integration -v ./...` (REST + ES `127.0.0.1:9200` + live MySQL DSN, `ONLYOFFICE_PG_TEST_FILE_ID=22484`/`FOLDER_ID=649`) — PASS **318**, FAIL **0**, SKIP **13** - Корневой пакет отдельно: 136 PASS / 0 FAIL (до фикса — 3 FAIL) - gitleaks: no leaks found ### SKIP (корректные, с причиной) - `TestIntegrationMinioFallback` — нет `MINIO_ACCESS_KEY/SECRET_KEY` - `TestIntegrationMailList`, `TestIntegrationMailInboxDetail`, `TestIntegrationPreviewMailFromAPI` — пустой inbox на инстансе - `TestIntegrationUpdateTaskTitleDescription`, `TestIntegrationTaskFieldsFromLiveAPI`, `TestIntegrationPreviewTaskFromAPI` — на инстансе 0 задач - `TestIntegrationPreviewOpportunityFromAPI` — 0 opportunities - `TestIntegrationPreviewFileFromAPI`, `TestIntegrationPreviewCSVFromDownloadedFile` — не задан `ONLYOFFICE_PROJECT_ID` - `TestTXTToDOCXPreservesLines`, `TestMDDocxRoundTrip` — нет pandoc; `TestOptimizePDF` — нет фикстуры ## Изменённые файлы `auth.go`, `http.go`, `request.go`, `retry.go`, `retry_test.go`, `cmd/office/fetch/task_integration_test.go`, `AGENTS.md`
eSlider added 1 commit 2026-09-16 22:36:10 +01:00
fix(retry): retry transient edge answers centrally, fix stale task test (#57)
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go 1.25) (pull_request) Successful in 21s
Tests / Test (Go stable) (pull_request) Successful in 21s
d6b8eb7777
- Route HTTP helpers (getJSON/formRequest/deleteReq/postJSON/putJSON/
  multipart upload), Query and AuthenticateContext/ensureToken through the
  deterministic 429/502/503/504 retry (retryRaw), so the integration suite
  no longer fails on the shared openresty rate limit under parallel runs.
- Fix stale cmd/office/fetch integration test: loader.TaskFields was
  replaced by loader.DetailForm (broke go vet -tags=integration).
- Add unit tests for Transient/DoRetry.
eSlider merged commit 9b149281a8 into main 2026-09-16 22:37:05 +01:00
eSlider deleted branch chore/test-green#57 2026-09-16 22:37:05 +01:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: eSlider/go-onlyoffice#61