diff --git a/scripts/release_control/internal/hosted_signup_billing_replay_rehearsal.py b/scripts/release_control/internal/hosted_signup_billing_replay_rehearsal.py index d2ff30d481..302cfe1237 100644 --- a/scripts/release_control/internal/hosted_signup_billing_replay_rehearsal.py +++ b/scripts/release_control/internal/hosted_signup_billing_replay_rehearsal.py @@ -282,7 +282,12 @@ def check_trial_start_redirect(args: argparse.Namespace, auth_headers: dict[str, return CheckResult( name="self-hosted-trial-redirect-to-hosted", ok=True, - detail=f"returned action_url={action_url}", + detail=( + "returned hosted handoff action_url=" + f"{action_url}; this rehearsal covers the `409 trial_signup_required` " + "branch only, while the later `429 trial_rate_limited` plus " + "`Retry-After` branch stays owned by the local trial-start proofs" + ), ) diff --git a/scripts/release_control/internal/hosted_signup_billing_replay_rehearsal_test.py b/scripts/release_control/internal/hosted_signup_billing_replay_rehearsal_test.py index d83d656a4c..05501542ad 100644 --- a/scripts/release_control/internal/hosted_signup_billing_replay_rehearsal_test.py +++ b/scripts/release_control/internal/hosted_signup_billing_replay_rehearsal_test.py @@ -91,6 +91,10 @@ class HostedSignupBillingReplayRehearsalTest(unittest.TestCase): results = mod.run_rehearsal(args) self.assertTrue(all(result.ok for result in results), [r.detail for r in results]) + redirect_result = next(result for result in results if result.name == "self-hosted-trial-redirect-to-hosted") + self.assertIn("trial_signup_required", redirect_result.detail) + self.assertIn("trial_rate_limited", redirect_result.detail) + self.assertIn("Retry-After", redirect_result.detail) trial_headers = next(headers for _method, url, headers in fetch_json_calls if url.endswith("/api/license/trial/start")) self.assertEqual(trial_headers["X-API-Token"], "token") webhook_headers = next(headers for _method, url, headers, _body in fetch_calls if url.endswith("/api/stripe/webhook"))