Files
agent-desktop/e2e/mocks/__init__.py
T

64 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
"""
Mock API modules for UI smoke tests.
Each module registers page.route() handlers for its API endpoints.
Call register_all(page) to set up all mocks at once.
"""
from __future__ import annotations
import json
from typing import List
from playwright.sync_api import Page
def _json_response(data, status=200):
"""Create a fulfillment handler that returns JSON."""
return lambda route: route.fulfill(
status=status,
content_type="application/json",
body=json.dumps(data),
)
def register_all(page: Page):
"""Register all API route mocks for UI smoke tests.
Playwright matches routes in reverse registration order (last registered = first matched),
so we register the catch-all FIRST and specific routes AFTER to ensure specific routes
take priority.
"""
from mocks import auth, agents, channels, sessions, cron_jobs, heartbeat
from mocks import models, security, environments, backups
# Catch-all: return empty JSON for any unmatched /api/ routes.
# Registered first so specific routes (registered after) take priority.
page.route(
"**/api/**",
lambda route: route.fulfill(
status=200,
content_type="application/json",
body=json.dumps({}),
),
)
# Specific route mocks — registered after catch-all so they match first
for module in [
auth,
agents,
channels,
sessions,
cron_jobs,
heartbeat,
models,
security,
environments,
backups,
]:
module.register(page)
# Re-export helper for individual mock modules
__all__ = ["register_all", "_json_response"]