fix(ci): fix 3 pre-existing CI failures + doc updates

- i18n: add 115 missing EN translation keys (parity with FA)
- csrf: test /dashboard-legacy/keys (SPA owns /dashboard/*)
- oauth: add tier scopes to test fixture allowed_scopes
- DOCKER_README: v3.13.0 — remove Appwrite/Directus, clarify 8 plugins
- getting-started: remove Appwrite/Directus, add Coolify endpoint row
- Overview.tsx: fix Lang type for AdminStatsPanel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-21 00:05:33 +02:00
parent 43fd2201a0
commit 349913ca2d
7 changed files with 212 additions and 71 deletions

View File

@@ -135,7 +135,7 @@ def user_client(monkeypatch, user_row, patched_db):
class TestRenderedCsrfMeta:
def test_keys_page_has_non_empty_csrf_meta(self, user_client):
r = user_client.get("/dashboard/keys")
r = user_client.get("/dashboard-legacy/keys")
assert r.status_code == 200
# The meta tag must be present *and* populated with a real token.
assert '<meta name="csrf-token"' in r.text

View File

@@ -65,7 +65,7 @@ def test_client(oauth_components):
client_name="Test Client",
redirect_uris=["http://localhost:3000/callback"],
grant_types=["authorization_code", "refresh_token", "client_credentials"],
allowed_scopes=["read", "write", "admin"],
allowed_scopes=["read", "editor", "settings", "install", "write", "admin"],
)
return {

View File

@@ -4,8 +4,8 @@ from unittest.mock import AsyncMock, MagicMock, patch
import pytest
from core.settings import get_cached_max_sites
from core.site_api import (
MAX_SITES_PER_USER,
create_user_site,
delete_user_site,
get_credential_fields,
@@ -225,7 +225,7 @@ class TestSiteCreation:
@pytest.mark.unit
async def test_create_site_max_limit(self, mock_db, mock_encryption):
"""Exceeding MAX_SITES_PER_USER should raise ValueError."""
mock_db.count_sites_by_user.return_value = MAX_SITES_PER_USER
mock_db.count_sites_by_user.return_value = get_cached_max_sites()
with pytest.raises(ValueError, match="Site limit reached"):
await create_user_site(
user_id="user-uuid-001",