From d884281c90a038afbe0dc17b9305d51883b3656f Mon Sep 17 00:00:00 2001 From: giokur Date: Thu, 17 Sep 2026 08:33:34 +0200 Subject: [PATCH] test(extapi): disable the cursor-advances case until the API is fixed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `ExtApi: Cursor advances to a disjoint page` has failed on all five nightlies on record — 09-11, 09-14, 09-15, 09-16, 09-17 — and the cause is a product defect. Cursor pagination over-fetches `limit + 1` to detect a next page, truncates to `limit`, then re-derives the answer from the truncated list: boolean hasNextPage = pageItems.size() == normalizedPagination.getLimit(); That cannot tell "exactly full" from "full and more to come", so the flag is true on every exact-multiple boundary and the endCursor it returns leads to an empty page. Three sites share it: OrganizationQueryService:64, DeviceService:213 and TicketService:101. DeviceService:131, in the same class, already does it the right way. Filed as https://app.clickup.com/t/86akk8pyu. Disabled rather than weakened. The assertion states the contract we want — follow a cursor the API advertised and get rows — and relaxing it to tolerate an empty page would lock the defect in. Only this case is disabled. Its siblings still cover page size, a malformed cursor and a cursor pointing past the end, and all of them pass. Co-Authored-By: Claude Opus 5 (1M context) --- .../openframe/test/tests/external/ExternalPaginationTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openframe-test-service-core/src/main/java/com/openframe/test/tests/external/ExternalPaginationTest.java b/openframe-test-service-core/src/main/java/com/openframe/test/tests/external/ExternalPaginationTest.java index 28c39d3352..669d52113f 100644 --- a/openframe-test-service-core/src/main/java/com/openframe/test/tests/external/ExternalPaginationTest.java +++ b/openframe-test-service-core/src/main/java/com/openframe/test/tests/external/ExternalPaginationTest.java @@ -9,6 +9,7 @@ import com.openframe.test.data.dto.external.customer.CustomersResponse; import io.restassured.response.Response; import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Order; @@ -108,6 +109,9 @@ public void testPageSizeIsHonoured() { assertThat(page.getPageInfo()).as("Paginated response should carry pageInfo").isNotNull(); } + // Disabled pending https://app.clickup.com/t/86akk8pyu: hasNextPage is true on any exactly-full + // page, so on a tenant whose customer count is a multiple of the limit the endCursor leads nowhere. + @Disabled("Wait for bug fix") @Tag("feature") @Tag("read") @Order(5)