---
suite: demo-edge
app: local-edge-playground
baseUrl: http://127.0.0.1:4010
tags: [demo, local, edge]
defaults:
  a11y: true
  captureVitals: true
  visual: false
browsers: [chromium]
---

# Cookie banner and modal are handled automatically

tags: [smoke, local, serial]
priority: high
owner: qe-foundation

## Goal

Verify the runtime can progress through surfaces without explicitly mentioning cookie consent handling.

## Steps

1. Open "/"
2. Assert text "Edge Case Playground"
3. Click role "button" named "Open modal"
4. Assert text "Demo modal"
5. Click role "button" named "Close modal"
6. Assert text "Forms and Inputs"

## Expected

- The landing page loads.
- The cookie banner does not block execution.
- The modal can be opened and closed.

---

# Network panel produces deterministic responses

tags: [local, network]
priority: medium
owner: qe-foundation

## Goal

Verify local network demo endpoints can be exercised from the UI.

## Steps

1. Open "/"
2. Click role "button" named "Ping API"
3. Assert text "primary"
4. Click role "button" named "Trigger slow API"
5. Assert text "1500"

## Expected

- Ping call succeeds.
- Slow API result is rendered in the page.

---

# Popup flow is followed automatically

tags: [local, popup]
priority: medium
owner: qe-foundation

## Goal

Verify the runtime follows the newly opened popup without requiring an explicit page switch step.

## Steps

1. Open "/"
2. Click role "button" named "Open same-origin popup"
3. Assert text "Popup Confirmation"
4. Fill field "Popup code" with "ABC-123"
5. Click role "button" named "Confirm popup action"
6. Assert text "Popup action confirmed."

## Expected

- The popup is opened and selected automatically.
- Popup form interaction succeeds without a manual page switch.

---

# Cross-origin popup flow is followed automatically

tags: [local, popup, cross-domain]
priority: medium
owner: qe-foundation

## Goal

Verify the runtime can continue in a cross-origin popup when the next steps clearly belong there.

## Steps

1. Open "/"
2. Click role "button" named "Open cross-origin popup"
3. Assert text "Provider Verification"
4. Fill field "Verification code" with "789101"
5. Click role "button" named "Complete verification"
6. Assert text "Provider verification completed."

## Expected

- The cross-origin popup is opened and selected automatically.
- Cross-origin popup interaction succeeds without a manual page switch.

---

# Blocking overlay is closed automatically

tags: [local, overlay]
priority: medium
owner: qe-foundation

## Goal

Verify the runtime can dismiss a blocking overlay even when the spec does not mention the close step.

## Steps

1. Open "/"
2. Click role "button" named "Show overlay"
3. Click role "button" named "Ping API"
4. Assert text "primary"

## Expected

- The blocking overlay does not stop the next intended action.
- Network interaction continues after the overlay is dismissed automatically.

---

# Intentional failure on accessibility violations

tags: [local, failure, a11y, quality]
priority: low
owner: qe-foundation

## Goal

Verify accessibility threshold breaches fail the test and produce a11y artifacts.

## Steps

1. Open "/a11y-failure.html"
2. Assert text "Accessibility Failure Playground"

## Expected

- The page loads successfully.
- Axe detects serious or critical accessibility violations.
- The run retains screenshot, trace, and `a11y.json` evidence.

---

# Intentional failure on vitals threshold

tags: [local, failure, performance, quality]
priority: low
owner: qe-foundation

## Goal

Verify vitals threshold breaches fail the test and produce vitals artifacts.

## Steps

1. Open "/vitals-failure.html"
2. Assert text "Vitals Failure Playground"

## Expected

- The page loads successfully.
- LCP exceeds the configured threshold.
- The run retains screenshot, trace, and `vitals.json` evidence.

---

# Frame interaction is resolved automatically

tags: [local, frame]
priority: medium
owner: qe-foundation

## Goal

Verify the runtime can resolve actions inside an iframe without explicit frame selection syntax.

## Steps

1. Open "/frame-host.html"
2. Assert text "Frame Host"
3. Click role "button" named "Confirm in frame"
4. Assert text "Frame action confirmed."

## Expected

- The iframe content is discovered automatically.
- The frame action updates the embedded status text.

---

# Intentional failure on wrong content assertion

tags: [local, failure, negative]
priority: low
owner: qe-foundation
retryPolicy:
  retries: 1

## Goal

Verify failed text assertions produce retained failure artifacts and clear failure reporting.

## Steps

1. Open "/"
2. Assert text "This text does not exist"

## Expected

- The test should fail on the missing text assertion.

---

# Skipped test by tag

tags: [local, skip]
priority: low
owner: qe-foundation

## Goal

Verify tests tagged `skip` are represented as skipped results without browser execution.

## Steps

1. Open "/"
2. Assert text "This skipped test should not execute"

## Expected

- The test appears in the report as skipped.
- No browser artifacts are created for this test.

---

# Blocked test by prerequisite

tags: [local, blocked]
priority: low
owner: qe-foundation

## Goal

Verify prerequisite-blocked tests are represented as blocked results without browser execution.

## Steps

1. Open "/"
2. Assert text "This blocked test should not execute"

## Expected

- The test appears in the report as blocked.
- No browser artifacts are created for this test.
- The blocked reason explains why execution did not start.

---

# Intentional failure after opening popup

tags: [local, failure, popup]
priority: low
owner: qe-foundation
retryPolicy:
  retries: 1

## Goal

Verify popup flows retain useful evidence when a wrong expectation is asserted.

## Steps

1. Open "/"
2. Click role "button" named "Open same-origin popup"
3. Assert text "Popup Confirmation"
4. Assert text "Definitely not in popup"

## Expected

- The popup opens.
- The test should fail on the final wrong assertion.

---

# Intentional failure inside iframe host

tags: [local, failure, frame]
priority: low
owner: qe-foundation
retryPolicy:
  retries: 1

## Goal

Verify iframe-related failures are easy to inspect in reports even before frame-aware runtime support is implemented.

## Steps

1. Open "/frame-host.html"
2. Assert text "Frame Host"
3. Assert text "Frame action confirmed."

## Expected

- The frame host page opens.
- The test should fail because the frame content state was not changed.
