import re
from pathlib import Path
from urllib.parse import urljoin

from tests.dashboard_bundle import dashboard_bundle_text


def test_api_requests_resolve_inside_dashboard_subpath():
    html = dashboard_bundle_text()
    api_paths = re.findall(r"fetch\(['\"]([^'\"]*api/v1/[^'\"]*)['\"]", html)
    commands = (Path(__file__).parents[1] / "frontend" / "commands.js").read_text()
    api_paths += re.findall(r"return ['\"]([^'\"]*api/v1/[^'\"]*)['\"]", commands)

    assert api_paths
    assert {
        urljoin("https://forge.alexanderwhitestone.com/dashboard/", path)
        for path in api_paths
    } == {
        "https://forge.alexanderwhitestone.com/dashboard/api/v1/live",
        "https://forge.alexanderwhitestone.com/dashboard/api/v1/notifications/",
        "https://forge.alexanderwhitestone.com/dashboard/api/v1/notifications?page=",
        "https://forge.alexanderwhitestone.com/dashboard/api/v1/notifications/read",
        "https://forge.alexanderwhitestone.com/dashboard/api/v1/repositories/search?q=",
        "https://forge.alexanderwhitestone.com/dashboard/api/v1/search?q=",
        "https://forge.alexanderwhitestone.com/dashboard/api/v1/work/",
    }
