fix(e2e): use Playwright web installer + session-based token creation for Matomo 5.3
- make Playwright a runtime dependency (installer requires it) - record-and-replay Matomo web installer flow (more stable than container bootstrap) - replace removed UsersManager.getTokenAuth with cookie-session login + createAppSpecificTokenAuth - make HttpClient return (status, body) for HTTPError responses - set deterministic container names in docker-compose and pass MATOMO_CONTAINER_NAME https://chatgpt.com/share/694a7b30-3dd4-800f-ba48-ae7083cfa4d8
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from argparse import Namespace
|
||||
|
||||
from .api_tokens import create_app_token, get_token_auth
|
||||
from .api_tokens import create_app_token_via_session
|
||||
from .health import assert_matomo_ready
|
||||
from .http import HttpClient
|
||||
from .install.web_installer import ensure_installed
|
||||
@@ -19,25 +19,19 @@ def run_bootstrap(args: Namespace) -> str:
|
||||
# 2) Now the UI/API should be reachable and "installed"
|
||||
assert_matomo_ready(args.base_url, timeout=args.timeout)
|
||||
|
||||
# 3) Create authenticated API token flow (no UI session needed)
|
||||
# 3) Create app-specific token via authenticated session (cookie-based)
|
||||
client = HttpClient(
|
||||
base_url=args.base_url,
|
||||
timeout=args.timeout,
|
||||
debug=args.debug,
|
||||
)
|
||||
|
||||
admin_token_auth = get_token_auth(
|
||||
token = create_app_token_via_session(
|
||||
client=client,
|
||||
admin_user=args.admin_user,
|
||||
admin_password=args.admin_password,
|
||||
)
|
||||
|
||||
token = create_app_token(
|
||||
client=client,
|
||||
admin_token_auth=admin_token_auth,
|
||||
admin_user=args.admin_user,
|
||||
admin_password=args.admin_password,
|
||||
description=args.token_description,
|
||||
debug=args.debug,
|
||||
)
|
||||
|
||||
return token
|
||||
|
||||
Reference in New Issue
Block a user