feat: open bot install guides in mini app
This commit is contained in:
@@ -24,6 +24,7 @@ SUBSCRIPTION_PURCHASE_DESCRIPTION_SETTINGS = (
|
||||
|
||||
SUBSCRIPTION_GUIDE_SETTINGS = (
|
||||
"SUBSCRIPTION_GUIDES_ENABLED",
|
||||
"SUBSCRIPTION_GUIDES_BOT_MENU_ENABLED",
|
||||
"SUBSCRIPTION_PAGE_CONFIG_PANEL_ENABLED",
|
||||
"SUBSCRIPTION_PAGE_CONFIG_JSON_OVERRIDE_ENABLED",
|
||||
"SUBSCRIPTION_PAGE_CONFIG_PATH",
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
import unittest
|
||||
|
||||
from bot.utils.mini_app_url import append_query_params, subscription_mini_app_topup_url
|
||||
from bot.utils.mini_app_url import (
|
||||
append_query_params,
|
||||
subscription_mini_app_install_url,
|
||||
subscription_mini_app_path_url,
|
||||
subscription_mini_app_topup_url,
|
||||
subscription_public_install_url,
|
||||
)
|
||||
from config.settings import Settings
|
||||
|
||||
|
||||
@@ -39,3 +45,33 @@ class MiniAppUrlTests(unittest.TestCase):
|
||||
subscription_mini_app_topup_url(s, "regular"),
|
||||
"https://app.example.com/webapp?topup=regular",
|
||||
)
|
||||
|
||||
def test_subscription_mini_app_path_url(self):
|
||||
s = Settings(
|
||||
_env_file=None,
|
||||
BOT_TOKEN="x",
|
||||
POSTGRES_USER="u",
|
||||
POSTGRES_PASSWORD="p",
|
||||
SUBSCRIPTION_MINI_APP_URL="https://app.example.com/webapp/",
|
||||
)
|
||||
self.assertEqual(
|
||||
subscription_mini_app_path_url(s, "/install"),
|
||||
"https://app.example.com/webapp/install",
|
||||
)
|
||||
self.assertEqual(
|
||||
subscription_mini_app_install_url(s),
|
||||
"https://app.example.com/webapp/install",
|
||||
)
|
||||
|
||||
def test_subscription_public_install_url_uses_origin(self):
|
||||
s = Settings(
|
||||
_env_file=None,
|
||||
BOT_TOKEN="x",
|
||||
POSTGRES_USER="u",
|
||||
POSTGRES_PASSWORD="p",
|
||||
SUBSCRIPTION_MINI_APP_URL="https://app.example.com/webapp",
|
||||
)
|
||||
self.assertEqual(
|
||||
subscription_public_install_url(s, "8f559061460e8fede78ef18dce887236"),
|
||||
"https://app.example.com/s/8f559061460e8fede78ef18dce887236",
|
||||
)
|
||||
|
||||
@@ -41,6 +41,7 @@ class SettingsTests(unittest.TestCase):
|
||||
)
|
||||
|
||||
self.assertTrue(settings.SUBSCRIPTION_GUIDES_ENABLED)
|
||||
self.assertFalse(settings.SUBSCRIPTION_GUIDES_BOT_MENU_ENABLED)
|
||||
self.assertTrue(settings.SUBSCRIPTION_PAGE_CONFIG_PANEL_ENABLED)
|
||||
self.assertFalse(settings.SUBSCRIPTION_PAGE_CONFIG_JSON_OVERRIDE_ENABLED)
|
||||
self.assertEqual(
|
||||
|
||||
@@ -8,6 +8,7 @@ from bot.handlers.user import referral
|
||||
from bot.handlers.user.subscription.core import _with_subscription_purchase_description
|
||||
from bot.keyboards.inline.user_keyboards import (
|
||||
get_bot_interface_inline_keyboard,
|
||||
get_connect_and_main_keyboard,
|
||||
get_information_links_keyboard,
|
||||
get_language_selection_keyboard,
|
||||
get_main_menu_inline_keyboard,
|
||||
@@ -41,6 +42,13 @@ class UserBotMenuTests(unittest.TestCase):
|
||||
TERMS_OF_SERVICE_URL="",
|
||||
TRIAL_ENABLED=True,
|
||||
SERVER_STATUS_URL="",
|
||||
SUBSCRIPTION_GUIDES_ENABLED=True,
|
||||
SUBSCRIPTION_GUIDES_BOT_MENU_ENABLED=False,
|
||||
SUBSCRIPTION_PAGE_CONFIG_PANEL_ENABLED=True,
|
||||
SUBSCRIPTION_PAGE_CONFIG_JSON_OVERRIDE_ENABLED=False,
|
||||
SUBSCRIPTION_PAGE_CONFIG_JSON="",
|
||||
PANEL_API_URL="https://panel.example.com",
|
||||
PANEL_API_KEY="token",
|
||||
)
|
||||
|
||||
def _callback_data(self, markup):
|
||||
@@ -70,6 +78,38 @@ class UserBotMenuTests(unittest.TestCase):
|
||||
self.assertIn("main_action:bot_info", callbacks)
|
||||
self.assertIn("main_action:back_to_main", callbacks)
|
||||
|
||||
def test_connect_keyboard_uses_subscription_url_when_bot_guides_disabled(self):
|
||||
markup = get_connect_and_main_keyboard(
|
||||
"en",
|
||||
self.i18n,
|
||||
self.settings,
|
||||
"https://sb.example.com/user",
|
||||
connect_button_url=None,
|
||||
)
|
||||
|
||||
self.assertEqual(markup.inline_keyboard[0][0].url, "https://sb.example.com/user")
|
||||
self.assertIsNone(markup.inline_keyboard[0][0].web_app)
|
||||
|
||||
def test_connect_keyboard_opens_install_guide_when_bot_guides_enabled(self):
|
||||
self.settings.SUBSCRIPTION_GUIDES_BOT_MENU_ENABLED = True
|
||||
markup = get_connect_and_main_keyboard(
|
||||
"en",
|
||||
self.i18n,
|
||||
self.settings,
|
||||
"https://sb.example.com/user",
|
||||
install_share_url="https://app.example.com/s/8f559061460e8fede78ef18dce887236",
|
||||
)
|
||||
|
||||
self.assertIsNone(markup.inline_keyboard[0][0].url)
|
||||
self.assertEqual(
|
||||
markup.inline_keyboard[0][0].web_app.url,
|
||||
"https://app.example.com/install",
|
||||
)
|
||||
self.assertEqual(
|
||||
markup.inline_keyboard[1][0].url,
|
||||
"https://app.example.com/s/8f559061460e8fede78ef18dce887236",
|
||||
)
|
||||
|
||||
def test_nested_bot_menu_keyboards_can_target_bot_interface_back(self):
|
||||
subscription_markup = get_subscription_options_keyboard(
|
||||
{1: 100},
|
||||
|
||||
Reference in New Issue
Block a user