[
  {
    "actions": [
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/"
      },
      {
        "action": "wait_for",
        "selector": "body",
        "timeout_ms": 15000,
        "type": "wait_for_selector"
      },
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/projects"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"projects-table-header-customer\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"projects-table-header-description\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"projects-table-header-description\"]",
        "type": "click"
      },
      {
        "action": "click",
        "selector": "[data-testid=\"projects-table-header-customer\"]",
        "type": "click"
      },
      {
        "text": "Customer",
        "type": "assert_text"
      },
      {
        "text": "Description",
        "type": "assert_text"
      },
      {
        "text": "Projects",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "After login, /projects shows the Customer column immediately before the Description column. The header reads \"Description\" (the previous \"Task/Description\" label is gone) and the columns are still sortable by clicking the header.",
    "human_journey": true,
    "name": "projects-table-column-order",
    "path": "/projects",
    "selectors": [],
    "source": "proof_contract",
    "start_path": "/",
    "texts": [
      "Projects"
    ]
  },
  {
    "actions": [
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/"
      },
      {
        "action": "wait_for",
        "selector": "body",
        "timeout_ms": 15000,
        "type": "wait_for_selector"
      },
      {
        "action": "navigate",
        "type": "navigate",
        "url": "{base_url}/projects"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"projects-stat-active-invoiced-value\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "wait_for",
        "selector": "[data-testid=\"projects-stat-outstanding-balance-value\"]",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "action": "click",
        "selector": "a[href=\"/invoicing\"]",
        "type": "click"
      },
      {
        "action": "wait_for",
        "selector": "text=Should be Received",
        "timeout_ms": 30000,
        "type": "wait_for_selector"
      },
      {
        "text": "Projects",
        "type": "assert_text"
      }
    ],
    "capture_each_step": true,
    "expected_result": "The Active Invoiced and Outstanding Balance cards on /projects pull from the /api/invoices/stats endpoint the same way the Financials page does. After clicking the Financials nav link from the sidebar, the Financials page renders its \"Should be Received\" total, which is the same value as the Outstanding Balance card.",
    "human_journey": true,
    "name": "projects-stats-match-financials",
    "path": "/projects",
    "selectors": [],
    "source": "proof_contract",
    "start_path": "/",
    "texts": [
      "Projects"
    ]
  }
]