[
  {
    "actions": [
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/"
      },
      {
        "action": "wait_for",
        "selector": "a[href=\"/resource-manager\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "a[href=\"/resource-manager\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"tab-navigation-set-active-tab-button-planning\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"tab-navigation-set-active-tab-button-planning\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"project-planning-grid-project-filter-trigger\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"project-planning-grid-project-filter-trigger\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"project-planning-grid-project-id-option\"]",
        "timeout_ms": 15000,
        "type": "wait_for_selector"
      },
      {
        "action": "assert_selector",
        "selector": "[data-testid=\"project-planning-grid-project-id-option\"]",
        "type": "assert_selector"
      },
      {
        "text": "Filter by Project",
        "type": "assert_text"
      },
      {
        "text": "Manage electrician and engineer availability",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "From the authenticated dashboard root, the user clicks the Resource Manager sidebar link, switches to the Project Planning tab, and opens the \"Filter by Project\" dropdown. The dropdown now lists every project that has a work activity (from /api/resources/work-activities, which already runs on mount), not just the projects that have rows in the planning grid itself. Pre-fix: getUniqueProjects() only walked the loaded tasks, so projects with no planning rows yet (the ones the user wanted to \"add timing plans\" to) were missing from the dropdown. Post-fix: the function merges projects from tasks AND from activities, dedupes by project reference, and sorts descending by reference, so newly selectable projects appear at the top of the list.",
    "human_journey": true,
    "name": "project-planning-grid-shows-all-active-projects-in-filter-2026-06-18",
    "path": "/resource-manager",
    "selectors": [],
    "source": "proof_contract",
    "start_path": "/",
    "texts": [
      "Manage electrician and engineer availability"
    ]
  },
  {
    "actions": [
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/"
      },
      {
        "action": "wait_for",
        "selector": "a[href=\"/resource-manager\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "a[href=\"/resource-manager\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"tab-navigation-set-active-tab-button-planning\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"tab-navigation-set-active-tab-button-planning\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"project-planning-grid-project-filter-trigger\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"project-planning-grid-project-filter-trigger\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"project-planning-grid-project-id-option\"]",
        "timeout_ms": 15000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"project-planning-grid-project-id-option\"] >> nth=1",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"project-planning-grid-popout-button\"]",
        "timeout_ms": 15000,
        "type": "wait_for_selector"
      },
      {
        "action": "click_popup",
        "selector": "[data-testid=\"project-planning-grid-popout-button\"]",
        "type": "click_popup",
        "wait_for_load_state": "domcontentloaded"
      },
      {
        "action": "wait_for",
        "text": "Project tasks",
        "timeout_ms": 15000,
        "type": "assert_text",
        "value": "Project tasks"
      },
      {
        "action": "assert_text_absent",
        "text": "Filter by Project:",
        "type": "assert_text_absent"
      },
      {
        "text": "Manage electrician and engineer availability",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "From the authenticated dashboard root, the user opens Resource Manager \u2192 Project Planning, picks a non-default project from the 'Filter by Project' dropdown (the 2nd option, since the 1st is the auto-selected default on mount), then clicks the Pop out button. The popped-out tab opens locked to the selected project \u2014 the 'Filter by Project:' label and the project filter dropdown are NOT rendered, and the locked project name display is shown instead. Pre-fix: ProjectPlanningGrid.jsx line 2677 built the URL as `/popup/planner` (no ID), so PlannerFullPage re-mounted an unlocked grid whose auto-select useEffect snapped the filter back to the first/highest-reference project. Post-fix: the popout URL is `/popup/planner/{selectedProjectId}`, so PlannerFullPage passes a real `lockedProjectId` and the grid renders in locked mode, preserving the user's selection. The click_popup action listens for window.open and switches the verifier's active page to the popup, so the wait_for/assert_text_absent assertions run against the popped-out tab, not the original Resource Manager tab.",
    "human_journey": true,
    "name": "project-planning-grid-popout-preserves-project-filter-2026-06-18",
    "path": "/resource-manager",
    "selectors": [],
    "source": "proof_contract",
    "start_path": "/",
    "texts": [
      "Manage electrician and engineer availability"
    ]
  }
]