DEDUPED Hot AI repos, turned into use cases Get the Monday 5

How to write UI tests that click widgets by role and label with Limoni

Test a Go terminal app by widget role and label instead of screen coordinates, using uitest.

Authorization notice. Limoni is dual-use. Only use it on software, sites and systems you own or have explicit permission to test.

Who it is forA Go developer maintaining a terminal app whose tests break every time a layout shifts by a column.

The problemTests that parse the character grid fail when the layout moves, so each small change breaks the suite.

The outcomeA test suite that finds buttons, inputs and lists by their semantic role and label, waits for conditions instead of sleeping, and prints the widget tree of the last frame when it fails.

What you need first

  • Go toolchain installed (for go install, go get, go run and go test)
  • A terminal that supports the app's output (images and some features depend on the terminal)
  • For the MCP use case: an MCP client such as Claude Code or Cursor, and limoni-mcp available on PATH (the README does not show how to install it)
  • For the backdrop use case: curl, sh, and a terminal emulator

Steps

  1. Run go run github.com/thebanri/limoni/cmd/limoni@latest new myapp -template counter (inferred, check the README)
  2. Run cd myapp && go mod tidy
  3. Run go test ./... and confirm the uitest test passes
  4. Open the generated test file and replace the checks with page.GetByRole("button", "<label>").Click() and page.Expect(...) calls for your own widgets
  5. Run go test ./... again after each change to the UI

Prompt for your agent

In the Go project at <path>, using the github.com/thebanri/limoni module, add a uitest test that clicks the button labelled <label> and expects a widget with id status to contain the text <expected text>. Run go test ./... and report whether it passes; if it fails, include the printed widget tree.

Caveat. The README describes uitest as in-process testing with no terminal needed, but the API is pre-1.0 and the README warns the project has no stable 1.0 API yet.

Use this in your AI agent

Ask your agent

Using the Deduped MCP, get the setup steps for thebanri/limoni and "Write UI tests that click widgets by role and label"

Add Deduped to Claude Code once

claude mcp add --transport http deduped https://dedupedai.com/mcp

Cursor, ChatGPT, others

Share: X LinkedIn Hacker News Email Copy link

Third-party repos we don't own. AI-written use cases can be wrong. Disclaimer