39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
|
|
|
|
def test_frontend_dockerfile_uses_standalone_multistage_runtime():
|
|
dockerfile = (ROOT / "frontend" / "Dockerfile").read_text(encoding="utf-8")
|
|
next_config = (ROOT / "frontend" / "next.config.mjs").read_text(encoding="utf-8")
|
|
|
|
assert 'output: "standalone"' in next_config
|
|
assert "AS deps" in dockerfile
|
|
assert "AS builder" in dockerfile
|
|
assert "AS runner" in dockerfile
|
|
assert "npm ci" in dockerfile
|
|
assert "npm prune --omit=dev" in dockerfile or "npm ci --omit=dev" in dockerfile
|
|
assert ".next/standalone" in dockerfile
|
|
assert "CMD [\"node\", \"server.js\"]" in dockerfile
|
|
|
|
|
|
def test_nginx_proxy_buffers_cover_supabase_auth_cookies():
|
|
nginx_conf = (ROOT / "deploy" / "nginx" / "polyweather.conf").read_text(
|
|
encoding="utf-8"
|
|
)
|
|
|
|
assert "proxy_buffer_size 16k;" in nginx_conf
|
|
assert "proxy_buffers 8 16k;" in nginx_conf
|
|
assert "proxy_busy_buffers_size 32k;" in nginx_conf
|
|
|
|
|
|
def test_scan_terminal_prewarm_is_lazy_by_default():
|
|
app_factory = (ROOT / "web" / "app_factory.py").read_text(encoding="utf-8")
|
|
|
|
assert "POLYWEATHER_SCAN_TERMINAL_PREWARM_ENABLED" in app_factory
|
|
assert "start_scan_terminal_prewarm()" not in app_factory.replace(
|
|
"if _scan_terminal_prewarm_enabled():\n start_scan_terminal_prewarm()",
|
|
"",
|
|
)
|