feat: surface trial activation in mini app

This commit is contained in:
3252a8
2026-05-24 18:48:01 +03:00
parent 235ee25d9f
commit 6f4074e8d6
13 changed files with 513 additions and 10 deletions
+40
View File
@@ -67,6 +67,46 @@ class UserBotMenuTests(unittest.TestCase):
self.assertIn("main_action:bot_interface", callbacks)
self.assertIn("main_action:info", callbacks)
def test_main_menu_shows_trial_button_as_mini_app_deeplink_when_available(self):
markup = get_main_menu_inline_keyboard(
"en",
self.i18n,
self.settings,
show_trial_button=True,
)
trial_button = markup.inline_keyboard[0][0]
self.assertEqual(trial_button.text, self.i18n.gettext("en", "menu_activate_trial_button"))
self.assertIsNone(trial_button.callback_data)
self.assertEqual(trial_button.web_app.url, "https://app.example.com/trial")
def test_main_menu_trial_button_falls_back_to_bot_callback_without_mini_app(self):
self.settings.SUBSCRIPTION_MINI_APP_URL = ""
markup = get_main_menu_inline_keyboard(
"en",
self.i18n,
self.settings,
show_trial_button=True,
)
trial_button = markup.inline_keyboard[0][0]
self.assertEqual(trial_button.callback_data, "main_action:request_trial")
self.assertIsNone(trial_button.web_app)
def test_bot_interface_trial_button_uses_mini_app_deeplink_when_available(self):
markup = get_bot_interface_inline_keyboard(
"en",
self.i18n,
self.settings,
show_trial_button=True,
)
trial_button = markup.inline_keyboard[0][0]
self.assertEqual(trial_button.web_app.url, "https://app.example.com/trial")
def test_bot_interface_buttons_return_to_bot_interface(self):
markup = get_bot_interface_inline_keyboard("en", self.i18n, self.settings)