Skip to content

Add Playwright E2E tests for Ontology Explorer pagination and glossary term reordering #27560

@1PoPTRoN

Description

@1PoPTRoN

Problem

PR #27200 shipped a significant UI refactor of the Ontology Explorer, fixing glossary term positioning for large datasets and adding MAX_SAFE_PAGES concurrency guards to prevent infinite loops in API pagination. However, no Playwright E2E test was added alongside this change.

The existing Glossary.spec.ts is known to be flaky (flagged in PR #24937), and the specific interactions that PR #27200 introduced term reordering, pagination boundary handling, and the new MAX_SAFE_PAGES guard are not covered by any existing test.

This means:

  • The infinite-loop protection logic has no automated regression test
  • Term drag-and-drop reordering in the Ontology Explorer has no E2E coverage
  • Pagination with large glossary datasets (the core scenario of the fix) is untested at the UI layer

Expected Behavior

When a glossary has more terms than one page can display:

  1. The Ontology Explorer should correctly paginate and display page controls
  2. Dragging a term to reorder it should persist the new position via API
  3. Clicking past MAX_SAFE_PAGES should gracefully stop fetching, not loop

Suggested Test Cases

OntologyExplorerPagination.spec.ts

  • should display pagination controls when glossary exceeds MAX_SAFE_PAGES terms
  • should stop fetching after MAX_SAFE_PAGES and show remaining count
  • should persist reordered term position after page navigation
  • should not trigger infinite pagination loop on rapid next-click

GlossaryReorder.spec.ts (split from flaky Glossary.spec.ts)

  • should allow drag-and-drop reordering of glossary terms
  • should reflect reordered position in API response after save
  • should revert position if reorder is cancelled

Relevant Files

  • openmetadata-ui/src/main/resources/ui/src/pages/OntologyVersion/ OntologyVersion.component.tsx (or similar path for Ontology Explorer)
  • playwright/e2e/Features/Glossary/Glossary.spec.ts (existing to replace or extend)
  • playwright/e2e/Features/Glossary/GlossaryReorder.spec.ts (new file)
  • playwright/e2e/Features/Glossary/OntologyExplorerPagination.spec.ts (new file)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions