Skip to main content

Performing Hand Seals...

MISSIONS (ASSIGNMENTS) ▸ ACADEMY
01
Academy - Setup & tooling
Install, config, codegen, trace viewer
MISSION COMPLETE
02

Flat tests & locator discipline

Academy Graduate - Graduation Exam
ACTIVE MISSION
Academy locators assertions
📖 Read the Scroll 🥷 Open Training Ground
THE TASK

Write a Playwright test suite for the RamenYa Training Ground. Use only the approved locator strategies — role, label, text first, testid when needed, CSS as last resort. No page objects yet — flat tests only. Every test must have at least one meaningful assertion.

DOM CONTRACT
getByRole('searchbox', { name: 'Search menu' }) getByRole('tab', { name: 'All' }) getByRole('tab', { name: 'Miso' }) getByRole('tab', { name: 'Tonkotsu' }) getByRole('heading', { name: 'Miso Ramen' }) getByRole('heading', { name: 'Tonkotsu' }) getByRole('button', { name: 'Add Miso Ramen to cart' }) getByRole('button', { name: 'Add Tonkotsu to cart' }) getByTestId('cart-count') getByRole('listitem') // ramen cards
TEST CASES
POSITIVE Search for "miso" → only Miso Ramen visible, exactly 1 listitem.
POSITIVE Click "Tonkotsu" filter → only Tonkotsu card visible.
POSITIVE Add Miso Ramen to cart → cart count shows "1".
NEGATIVE Search for "pizza" → no ramen cards visible.
POSITIVE Add same item twice → cart count shows "2".
📋 Mission Brief - the definition of "good"
0 / 5 met

Self-evaluation checklist (v1). Tick each as you confirm it in your own suite.

All locators follow the priority chain (role/label/text first).
No waitForTimeout used anywhere.
No raw CSS selectors used for interactive elements.
Each test has at least one meaningful assertion checking real state.
Tests pass on the Training Ground app.
ACCEPT MISSION