[
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "f4818034-4b88-4ec3-980d-9c43cf0eb3c4",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC001-Home page loads and shows navigation cards",
    "description": "Verify home route loads and displays Export Reports, Grape Production, Vineyard Status cards",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        # Verify we are on the home route (root path)\n        assert \"/\" in frame.url\n        \n        # Banner (logo/link) is visible\n        banner = frame.locator('xpath=/html/body/div/div/nav/div/a')\n        assert await banner.is_visible()\n        \n        # Export Reports card is visible\n        export_reports_btn = frame.locator('xpath=/html/body/div/div/div/div[1]/div/div[1]/button')\n        assert await export_reports_btn.is_visible()\n        \n        # Grape Production card is visible\n        grape_production_btn = frame.locator('xpath=/html/body/div/div/div/div[1]/div/div[2]/button')\n        assert await grape_production_btn.is_visible()\n        \n        # Vineyard Status card is visible\n        vineyard_status_btn = frame.locator('xpath=/html/body/div/div/div/div[1]/div/div[3]/button')\n        assert await vineyard_status_btn.is_visible()\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "High",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/177210404168172//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.440Z",
    "modified": "2026-02-26T11:07:21.818Z"
  },
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "987bc1b7-3f2d-4719-a78c-682eb8ccd580",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC002-Navigate from Home to Export Reports",
    "description": "Click Export Reports card and land on /reports",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # -> Click the Export Reports card to navigate to /reports and then verify the /reports URL and content.\n        frame = context.pages[-1]\n        # Click element\n        elem = frame.locator('xpath=/html/body/div/div/div/div[1]/div/div[1]/button').nth(0)\n        await page.wait_for_timeout(3000); await elem.click(timeout=5000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        # Assert we navigated to /reports\n        assert \"/reports\" in frame.url\n        # Assert Export Reports content is visible - Overview button\n        assert await frame.locator('xpath=/html/body/div[1]/div/div/div/main/div[1]/button[1]').is_visible()\n        # Also ensure Exports nav link is visible\n        assert await frame.locator('xpath=/html/body/div[1]/div/nav/div/div[1]/ul/li[2]/a').is_visible()\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "High",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/177210407459345//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.446Z",
    "modified": "2026-02-26T11:07:54.715Z"
  },
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "42f857ae-7937-45a7-b1af-bc28ee0a4f8b",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC003-Navigate from Home to Grape Production",
    "description": "Click Grape Production card and land on /grape-production",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # -> Click the Grape Production card (button index 83) to navigate to /grape-production and stop.\n        frame = context.pages[-1]\n        # Click element\n        elem = frame.locator('xpath=/html/body/div/div/div/div[1]/div/div[2]/button').nth(0)\n        await page.wait_for_timeout(3000); await elem.click(timeout=5000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        await frame.wait_for_load_state('commit')\n        assert \"/grape-production\" in frame.url\n        gp_nav = frame.locator('xpath=/html/body/div[1]/div/nav/div/div[1]/ul/li[3]/a')\n        assert await gp_nav.is_visible()\n        gen_btn = frame.locator('xpath=/html/body/div[1]/div/div/form/button')\n        assert await gen_btn.is_visible()\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "High",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/1772104069771205//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.452Z",
    "modified": "2026-02-26T11:07:49.904Z"
  },
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "16a50056-a523-4cb8-81e1-a6dc9c0d0a9f",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC004-Navigate from Home to Vineyard Status",
    "description": "Click Vineyard Status card and land on /vineyard-status",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # -> Click the Vineyard Status card button (index 90) to navigate to /vineyard-status.\n        frame = context.pages[-1]\n        # Click element\n        elem = frame.locator('xpath=/html/body/div/div/div/div[1]/div/div[3]/button').nth(0)\n        await page.wait_for_timeout(3000); await elem.click(timeout=5000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        # Assert that the page navigated to /vineyard-status\n        assert \"/vineyard-status\" in frame.url\n        \n        # Assert that the 'Vineyard Status' navigation link/text is visible on the page\n        vstatus_link = frame.locator('xpath=/html/body/div[1]/div/nav/div/div[1]/ul/li[4]/a')\n        await vstatus_link.wait_for(state='visible', timeout=5000)\n        assert await vstatus_link.is_visible()\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "High",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/1772104050469849//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.458Z",
    "modified": "2026-02-26T11:07:30.584Z"
  },
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "9f8fed35-d317-45f4-b973-86689ae7bf69",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC005-Export Reports Overview tab visible",
    "description": "On /reports, Overview tab is present and shows charts",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # -> Navigate to /reports by issuing a navigate action to http://localhost:44487/reports\n        await page.goto(\"http://localhost:44487/reports\", wait_until=\"commit\", timeout=10000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        await expect(frame.locator('xpath=//a[@role=\"tab\" and (@aria-selected=\"true\" or contains(@class,\"active\")) and normalize-space(text())=\"Overview\"]').first).to_be_visible(timeout=3000)\n        await expect(frame.locator('text=Charts').first).to_be_visible(timeout=3000)\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "High",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/1772104065174409//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.464Z",
    "modified": "2026-02-26T11:07:45.291Z"
  },
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "9daa84f8-87d7-4e08-9d11-99ee9469135b",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC006-Export Reports Volume/Value tab",
    "description": "Volume/Value tab is available and shows tables",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # -> Navigate to /reports using the exact path http://localhost:44487/reports (per explicit instruction).\n        await page.goto(\"http://localhost:44487/reports\", wait_until=\"commit\", timeout=10000)\n        \n        # -> Click the Volume tab (element index 281) to load the Volume view and expose its tables, then verify the Volume content/tables are visible.\n        frame = context.pages[-1]\n        # Click element\n        elem = frame.locator('xpath=/html/body/div/div/div/div/main/div[1]/button[2]').nth(0)\n        await page.wait_for_timeout(3000); await elem.click(timeout=5000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        assert \"/reports\" in frame.url\n        elem = frame.locator('xpath=/html/body/div[1]/div/div/div/main/div[3]/div/div[2]/div[2]/div/button[1]')\n        assert await elem.is_visible()\n        elem = frame.locator('xpath=/html/body/div[1]/div/div/div/main/div[3]/div/div[2]/div[2]/div/button[2]')\n        assert await elem.is_visible()\n        elem = frame.locator('xpath=/html/body/div[1]/div/div/div/main/div[3]/div/div[3]')\n        assert await elem.is_visible()\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "High",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/1772104131632893//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.470Z",
    "modified": "2026-02-26T11:08:51.771Z"
  },
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "7231af74-a4b9-4a67-8911-02bcb4a39a26",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC007-Login modal opens from navbar",
    "description": "Click Login in navbar opens sign-in modal",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # -> Click the Login button (index 61) to open the sign-in modal, then verify the modal shows email and password fields.\n        frame = context.pages[-1]\n        # Click element\n        elem = frame.locator('xpath=/html/body/div/div/nav/div/div[2]/button').nth(0)\n        await page.wait_for_timeout(3000); await elem.click(timeout=5000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        dialog = frame.locator('xpath=/html/body/div[1]/div/nav/div/div[2]/dialog')\n        await dialog.wait_for(state='visible', timeout=5000)\n        assert await dialog.is_visible()\n        email = frame.locator('xpath=/html/body/div[1]/div/nav/div/div[2]/dialog/div/form/div[1]/input')\n        await email.wait_for(state='visible', timeout=5000)\n        assert await email.is_visible()\n        password = frame.locator('xpath=/html/body/div[1]/div/nav/div/div[2]/dialog/div/form/div[2]/input')\n        await password.wait_for(state='visible', timeout=5000)\n        assert await password.is_visible()\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "High",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/1772104072187419//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.476Z",
    "modified": "2026-02-26T11:07:52.386Z"
  },
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "bd10e6eb-6aaf-45c3-8105-60fc80c6e548",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC008-Grape Production sidebar and report list",
    "description": "Grape Production page has sidebar filters and report list",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # -> Navigate to /grape-production (use exact path http://localhost:44487/grape-production) to check for sidebar filters and report list.\n        await page.goto(\"http://localhost:44487/grape-production\", wait_until=\"commit\", timeout=10000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        await expect(frame.locator('text=Filters').first).to_be_visible(timeout=3000)\n        await expect(frame.locator('text=Reports').first).to_be_visible(timeout=3000)\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "Medium",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/1772104060172737//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.483Z",
    "modified": "2026-02-26T11:07:40.284Z"
  },
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "94fd431e-bf32-4999-9f65-481badf23d10",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC009-Vineyard Status sidebar and report list",
    "description": "Vineyard Status page has sidebar filters and report list",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # -> Navigate to /vineyard-status (use site base URL + '/vineyard-status') and then check for sidebar filters and report list.\n        await page.goto(\"http://localhost:44487/vineyard-status\", wait_until=\"commit\", timeout=10000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        assert \"/vineyard-status\" in frame.url\n        assert await frame.locator('xpath=/html/body/div/div/div/form/span[1]/div/button').is_visible()\n        assert await frame.locator('xpath=/html/body/div/div/div/form/div/button[1]').is_visible()\n        assert await frame.locator('xpath=/html/body/div/div/div/div/main/div[1]/div[3]/div[2]/button[1]').is_visible()\n        assert await frame.locator('xpath=/html/body/div/div/div/div/main/div[4]/div[1]/h4').is_visible()\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "Medium",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/1772104099879228//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.491Z",
    "modified": "2026-02-26T11:08:20.004Z"
  },
  {
    "projectId": "1c726db4-add8-4ef4-83e5-e0e21fbbc076",
    "testId": "5680ba59-252d-476f-a623-d4cea6261e57",
    "userId": "b4e89448-9081-7001-752f-2f87941e0326",
    "title": "TC010-Navbar shows Home, Exports, Grape Production, Vineyard Status",
    "description": "Main nav links are present; Admin link not required for non-admin",
    "code": "import asyncio\nfrom playwright import async_api\nfrom playwright.async_api import expect\n\nasync def run_test():\n    pw = None\n    browser = None\n    context = None\n\n    try:\n        # Start a Playwright session in asynchronous mode\n        pw = await async_api.async_playwright().start()\n\n        # Launch a Chromium browser in headless mode with custom arguments\n        browser = await pw.chromium.launch(\n            headless=True,\n            args=[\n                \"--window-size=1280,720\",         # Set the browser window size\n                \"--disable-dev-shm-usage\",        # Avoid using /dev/shm which can cause issues in containers\n                \"--ipc=host\",                     # Use host-level IPC for better stability\n                \"--single-process\"                # Run the browser in a single process mode\n            ],\n        )\n\n        # Create a new browser context (like an incognito window)\n        context = await browser.new_context()\n        context.set_default_timeout(5000)\n\n        # Open a new page in the browser context\n        page = await context.new_page()\n\n        # Interact with the page elements to simulate user flow\n        # -> Navigate to http://localhost:44487\n        await page.goto(\"http://localhost:44487\", wait_until=\"commit\", timeout=10000)\n        \n        # --> Assertions to verify final state\n        frame = context.pages[-1]\n        await expect(frame.locator('xpath=//nav[.//a[normalize-space(text())=\"Home\"] and .//a[normalize-space(text())=\"Exports\"] and .//a[normalize-space(text())=\"Grape Production\"] and .//a[normalize-space(text())=\"Vineyard Status\"]]').first).to_be_visible(timeout=3000)\n        await asyncio.sleep(5)\n\n    finally:\n        if context:\n            await context.close()\n        if browser:\n            await browser.close()\n        if pw:\n            await pw.stop()\n\nasyncio.run(run_test())\n    ",
    "testStatus": "PASSED",
    "testError": "",
    "testType": "FRONTEND",
    "createFrom": "mcp",
    "priority": "Medium",
    "testVisualization": "https://testsprite-videos.s3.us-east-1.amazonaws.com/b4e89448-9081-7001-752f-2f87941e0326/1772104025130528//tmp/test_task/result.webm",
    "created": "2026-02-26T11:05:57.499Z",
    "modified": "2026-02-26T11:07:05.255Z"
  }
]
