Skip to content

Add browser-level end-to-end test coverage #2070

Description

@vishwakt

Problem

The repo has strong unit and component coverage (170+ unit and 25 component test files) but no browser-level end-to-end tests. Nothing exercises the real stack: the UI driving real queries through the proxy server against a real graph database.

Two recent bugs illustrate the gap:

Proposal

A small Playwright suite that runs the full stack locally and in CI:

  1. tinkerpop/gremlin-server in Docker using the bundled conf/gremlin-server-rest-modern.yaml (HTTP endpoint, modern sample graph preloaded, no auth). Starts in seconds and needs no AWS resources.
  2. The existing proxy server and dev server, exactly as pnpm dev runs them.
  3. Playwright driving Chrome: create a connection, sync schema, search, add nodes, expand neighbors, and assert on both the rendered UI and the captured Gremlin requests.

I have a working prototype of this exact stack. It produced the before/after evidence on #2069 (screenshots plus captured request bodies proving the missing .range() clause) and an earlier variant produced the evidence on #1979 with a stub server. The pieces that exist today: launch orchestration, connection setup flow, schema sync wait, node-to-canvas flow, expand panel interaction, and network capture.

Suggested starting scope

  • One smoke test per query language reachable with local engines (Gremlin now via TinkerPop; openCypher and SPARQL as follow-ups if suitable local engines are agreed on)
  • The critical analyst path: connect, sync, search, add to canvas, expand with limit
  • CI job with the Docker service, gated to run on PRs

Out of scope for a first pass

Happy to contribute this incrementally, starting with the harness plus two or three smoke tests, if the approach sounds right to the team.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions