[
  {
    "actions": [
      {
        "action": "wait_for",
        "selector": "#root *",
        "timeout_ms": 8000
      },
      {
        "action": "menu_sweep",
        "count": 5,
        "label": "menu_sweep: Opportunities, Dashboard, Projects, Cost Analysis, Purchase Orders",
        "min_count": 3
      }
    ],
    "capture_each_step": true,
    "human_journey": false,
    "kind": "l2_menu_smoke",
    "name": "l2-menu-smoke",
    "path": "/",
    "selectors": [],
    "start_path": "",
    "texts": []
  },
  {
    "actions": [
      {
        "label": "dashboard loaded",
        "text": "Dashboard",
        "type": "assert_text"
      },
      {
        "label": "dismiss welcome modal",
        "name": "Got it!",
        "optional": true,
        "role": "button",
        "type": "click",
        "wait_ms": 500
      },
      {
        "label": "open Opportunities",
        "selector": "a[href=\"/opportunities\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/opportunities",
        "wait_ms": 700
      },
      {
        "label": "Opportunities screen visible",
        "text": "Opportunities",
        "type": "assert_text"
      },
      {
        "label": "open Projects",
        "selector": "a[href=\"/projects\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/projects",
        "wait_ms": 700
      },
      {
        "label": "Projects screen visible",
        "text": "Projects",
        "type": "assert_text"
      },
      {
        "label": "open Resource Manager",
        "selector": "a[href=\"/resource-manager\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/resource-manager",
        "wait_ms": 700
      },
      {
        "label": "Resource Manager screen visible",
        "text": "Resource Manager",
        "type": "assert_text"
      },
      {
        "label": "open Cost Analysis",
        "selector": "a[href=\"/project-cost-analysis\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/project-cost-analysis",
        "wait_ms": 700
      },
      {
        "label": "Cost Analysis screen visible",
        "text": "Cost Analysis",
        "type": "assert_text"
      },
      {
        "label": "open Email Inbox",
        "selector": "a[href=\"/email-inbox\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/email-inbox",
        "wait_ms": 700
      },
      {
        "label": "Email Inbox screen visible",
        "text": "Email Inbox",
        "type": "assert_text"
      },
      {
        "label": "open Purchase Orders",
        "selector": "a[href=\"/purchase-orders\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/purchase-orders",
        "wait_ms": 700
      },
      {
        "label": "Purchase Orders screen visible",
        "text": "Purchase Orders",
        "type": "assert_text"
      },
      {
        "label": "open Task Monitor",
        "selector": "a[href=\"/task-monitor\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/task-monitor",
        "wait_ms": 700
      },
      {
        "label": "Task Monitor screen visible",
        "text": "Task Monitor",
        "type": "assert_text"
      },
      {
        "label": "open QA Centre",
        "selector": "a[href=\"/qa-centre\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/qa-centre",
        "wait_ms": 700
      },
      {
        "label": "QA Centre screen visible",
        "text": "QA Centre",
        "type": "assert_text"
      },
      {
        "label": "open Voice Dictation",
        "selector": "a[href=\"/voice-dictation\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/voice-dictation",
        "wait_ms": 700
      },
      {
        "label": "Voice Dictation screen visible",
        "text": "Voice Dictation",
        "type": "assert_text"
      },
      {
        "label": "open MiniMax Studio",
        "selector": "a[href=\"/minimax-studio\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/minimax-studio",
        "wait_ms": 700
      },
      {
        "label": "MiniMax Studio screen visible",
        "text": "MiniMax Studio",
        "type": "assert_text"
      },
      {
        "label": "open Customers",
        "selector": "a[href=\"/customers\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/customers",
        "wait_ms": 700
      },
      {
        "label": "Customers screen visible",
        "text": "Customers",
        "type": "assert_text"
      },
      {
        "label": "open Suppliers",
        "selector": "a[href=\"/suppliers\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/suppliers",
        "wait_ms": 700
      },
      {
        "label": "Suppliers screen visible",
        "text": "Suppliers",
        "type": "assert_text"
      },
      {
        "label": "open Inventory",
        "selector": "a[href=\"/inventory\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/inventory",
        "wait_ms": 700
      },
      {
        "label": "Inventory screen visible",
        "text": "Inventory",
        "type": "assert_text"
      },
      {
        "label": "open Employees",
        "selector": "a[href=\"/employees\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/employees",
        "wait_ms": 700
      },
      {
        "label": "Employees screen visible",
        "text": "Employees",
        "type": "assert_text"
      },
      {
        "label": "open My File",
        "selector": "a[href=\"/employees/my-file\"]:visible",
        "type": "click",
        "wait_for_selector": "#root > *",
        "wait_for_url": "**/employees/my-file",
        "wait_ms": 700
      },
      {
        "label": "My File screen visible",
        "text": "My File",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "Log into the ERP dev site, navigate through the primary sidebar screens by visible links, capture each screen, and finish with no browser/runtime failures.",
    "human_journey": true,
    "name": "ERP proof-only navigation smoke L2",
    "path": "/employees/my-file",
    "selectors": [
      "#root > *",
      "a[href=\"/opportunities\"]:visible",
      "a[href=\"/projects\"]:visible",
      "a[href=\"/resource-manager\"]:visible",
      "a[href=\"/project-cost-analysis\"]:visible",
      "a[href=\"/purchase-orders\"]:visible",
      "a[href=\"/task-monitor\"]:visible"
    ],
    "source": "orchestrator_proof_only",
    "start_path": "/",
    "texts": [
      "My File"
    ]
  },
  {
    "actions": [
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/purchase-orders"
      },
      {
        "action": "wait_for",
        "selector": "input[placeholder=\"Search PO, supplier or project...\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"po-filter-pending-approval\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "tr:has-text(\"Pending Approval\"):has([data-testid^=\"po-view-\"])",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "tr:has-text(\"Pending Approval\"):has([data-testid^=\"po-view-\"]) [data-testid^=\"po-view-\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"po-details-modal\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"po-approval-tab\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"po-approval-actions\"]",
        "timeout_ms": 10000,
        "type": "wait_for_selector"
      },
      {
        "action": "fill",
        "selector": "[data-testid=\"po-approval-required-date\"]",
        "type": "fill",
        "value": "2026-06-30"
      },
      {
        "action": "fill",
        "selector": "[data-testid=\"po-approval-notes\"]",
        "type": "fill",
        "value": "L2 first approval proof"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"po-approve-button\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"po-details-modal\"]:has-text(\"Approved\")",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "text": "Approved",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "A Pending Approval purchase order opens from the normal Purchase Orders screen and approves on the first click without requiring the modal to be closed and reopened.",
    "human_journey": true,
    "name": "purchase-order-first-approval",
    "path": "/purchase-orders",
    "selectors": [],
    "source": "sitemap",
    "start_path": "/",
    "texts": []
  },
  {
    "actions": [
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/purchase-orders"
      },
      {
        "action": "wait_for",
        "selector": "input[placeholder=\"Search PO, supplier or project...\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"po-filter-pending-approval\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "tr:has-text(\"Pending Approval\")",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "text": "Pending Approval",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "After creating a PO whose total exceeds the \u00a35,000 approval limit, the PO appears in the Pending Approval list (not Requested) and is approvable from the same Pending Approval surface \u2014 the Telegram Approve / Reject buttons resolve against the same status.",
    "human_journey": true,
    "name": "purchase-order-over-limit-auto-submits-for-approval",
    "path": "/purchase-orders",
    "selectors": [],
    "source": "sitemap",
    "start_path": "/",
    "texts": []
  },
  {
    "actions": [
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/"
      },
      {
        "action": "wait_for",
        "selector": "a[href=\"/purchase-orders\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "a[href=\"/purchase-orders\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "input[placeholder=\"Search PO, supplier or project...\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"po-filter-pending-approval\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"po-filter-pending-approval\"]",
        "timeout_ms": 10000,
        "type": "wait_for_selector"
      },
      {
        "text": "Purchase Orders",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "The /purchase-orders page loads via sidebar nav and the Pending Approval filter tab is interactive. Backend fix: backend/services/po_approval_reminder.py now excludes Requested-status POs from the Telegram digest (filter changed from [\"Pending Approval\", \"Requested\", \"On Hold\"] to [\"Pending Approval\", \"On Hold\"]). The code diff on the deployed branch is the definitive proof; this L2 check confirms the purchase orders page is functional and the filter control is reachable.",
    "human_journey": true,
    "name": "po-telegram-digest-excludes-requested-2026-06-16",
    "path": "/purchase-orders",
    "selectors": [],
    "source": "sitemap",
    "start_path": "/",
    "texts": []
  },
  {
    "actions": [
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/"
      },
      {
        "action": "wait_for",
        "selector": "a[href=\"/purchase-orders\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "a[href=\"/purchase-orders\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "input[placeholder=\"Search PO, supplier or project...\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "assert_selector",
        "selector": "[data-testid=\"po-toolbar-row\"]",
        "type": "assert_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"purchase-orders-assemblies-button\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "input[placeholder=\"Search assemblies...\"]",
        "timeout_ms": 15000,
        "type": "wait_for_selector"
      },
      {
        "action": "assert_selector",
        "selector": "[data-testid=\"po-toolbar-row\"]",
        "type": "assert_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"purchase-orders-orders-button\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "input[placeholder=\"Search PO, supplier or project...\"]",
        "timeout_ms": 15000,
        "type": "wait_for_selector"
      },
      {
        "action": "assert_selector",
        "selector": "[data-testid=\"po-toolbar-row\"]",
        "type": "assert_selector"
      },
      {
        "action": "assert_selector",
        "selector": "[data-testid=\"po-toolbar-actions-right\"]",
        "type": "assert_selector"
      },
      {
        "text": "Purchase Orders",
        "type": "assert_text"
      },
      {
        "text": "View Cancelled",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "The Purchase Orders toolbar renders without visual overlap of the action buttons and keeps a consistent height when switching between Orders and Assemblies. data-testid=\"po-toolbar-row\" is NEW in this repair pass \u2014 added to the outer toolbar container (the same div that received the min-h-[88px] / xl:items-start fix). It does NOT exist on origin/main NOR on any prior repair-pass commit (a8b0e5cc5, ce468da81, 3906ba202, c0c09be67), so any pre-fix dev deployment fails the assert_selector on this testid \u2192 baseline=False \u2192 red\u2192green confirmed. The check switches Orders\u2192Assemblies\u2192Orders and re-asserts the same row testid on each tab, proving the row container is rendered consistently (bug #2 fix) AND the right-side actions container is present (bug #1 fix).",
    "human_journey": true,
    "name": "po-toolbar-no-overlap-and-consistent-height-2026-06-16",
    "path": "/purchase-orders",
    "selectors": [],
    "source": "sitemap",
    "start_path": "/",
    "texts": []
  },
  {
    "actions": [
      {
        "selector": "a[href=\"/suppliers\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "input[placeholder=\"Search suppliers...\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "text": "Suppliers",
        "type": "assert_text"
      },
      {
        "text": "Manage your supplier database",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "/suppliers renders the declared sitemap smoke proof.",
    "human_journey": true,
    "name": "suppliers-list-renders",
    "path": "/suppliers",
    "selectors": [],
    "source": "sitemap",
    "start_path": "/",
    "texts": []
  },
  {
    "actions": [
      {
        "selector": "a[href=\"/inventory\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "input[placeholder=\"Search items...\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "text": "Inventory Management",
        "type": "assert_text"
      },
      {
        "text": "Manage your inventory items",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "/inventory renders the declared sitemap smoke proof.",
    "human_journey": true,
    "name": "inventory-list-renders",
    "path": "/inventory",
    "selectors": [],
    "source": "sitemap",
    "start_path": "/",
    "texts": []
  }
]