11// src/__tests__/bot-commands.test.ts
22import { describe , it , expect } from "vitest" ;
33import { createdMessage , launchMessage , normalizeTelegramCommandText , parseCommand } from "../bot/commands.js" ;
4+ import { previewReadyMessage } from "../bot/i18n.js" ;
45
56describe ( "parseCommand" , ( ) => {
67 it ( "parses /start" , ( ) => {
@@ -49,14 +50,11 @@ describe("parseCommand", () => {
4950} ) ;
5051
5152describe ( "bot messages" , ( ) => {
52- it ( "createdMessage (ru) includes bootstrap steps and links" , ( ) => {
53+ it ( "createdMessage (ru) includes bootstrap steps without links" , ( ) => {
5354 const message = createdMessage (
5455 "ru" ,
5556 "demo-app" ,
5657 "npx @spawn-dock/create --token pair_demo" ,
57- "https://spawn-dock.example/preview/demo-app" ,
58- "https://t.me/TMASpawnerBot/tma?startapp=demo-app" ,
59- "https://spawn-dock.example/tma?tgWebAppStartParam=demo-app" ,
6058 ) ;
6159
6260 expect ( message ) . toContain ( "Проект demo-app создан." ) ;
@@ -65,29 +63,28 @@ describe("bot messages", () => {
6563 expect ( message ) . toContain ( "Эту команду можно запускать повторно для этого проекта." ) ;
6664 expect ( message ) . toContain ( "2. После bootstrap запусти:" ) ;
6765 expect ( message ) . toContain ( "pnpm run dev" ) ;
68- expect ( message ) . toContain ( "Preview URL:" ) ;
69- expect ( message ) . toContain ( "Telegram Link:" ) ;
70- expect ( message ) . toContain ( "TMA URL:" ) ;
66+ expect ( message ) . not . toContain ( "Preview URL:" ) ;
67+ expect ( message ) . not . toContain ( "Telegram Link:" ) ;
68+ expect ( message ) . not . toContain ( "TMA URL:" ) ;
69+ expect ( message ) . not . toContain ( "Ссылки:" ) ;
7170 } ) ;
7271
7372 it ( "createdMessage (en) uses English bootstrap copy" , ( ) => {
7473 const message = createdMessage (
7574 "en" ,
7675 "demo-app" ,
7776 "npx @spawn-dock/create --token pair_demo" ,
78- "https://spawn-dock.example/preview/demo-app" ,
79- "https://t.me/TMASpawnerBot/tma?startapp=demo-app" ,
80- "https://spawn-dock.example/tma?tgWebAppStartParam=demo-app" ,
8177 ) ;
8278
8379 expect ( message ) . toContain ( "Project demo-app created." ) ;
8480 expect ( message ) . toContain ( "1. Run the bootstrap command locally:" ) ;
8581 expect ( message ) . toContain ( "npx @spawn-dock/create --token pair_demo" ) ;
8682 expect ( message ) . toContain ( "2. After bootstrap, run:" ) ;
8783 expect ( message ) . toContain ( "pnpm run dev" ) ;
84+ expect ( message ) . not . toContain ( "Links:" ) ;
8885 } ) ;
8986
90- it ( "includes TMA and preview links in launchMessage" , ( ) => {
87+ it ( "includes TMA, preview, and telegram links in launchMessage" , ( ) => {
9188 const message = launchMessage (
9289 "en" ,
9390 "demo-app" ,
@@ -103,4 +100,18 @@ describe("bot messages", () => {
103100 expect ( message ) . toContain ( "Tunnel status:" ) ;
104101 expect ( message ) . toContain ( "<code>npm run agent</code>" ) ;
105102 } ) ;
103+
104+ it ( "previewReadyMessage keeps all links" , ( ) => {
105+ const message = previewReadyMessage (
106+ "ru" ,
107+ "demo-app" ,
108+ "https://example.com/preview/demo-app" ,
109+ "https://t.me/rustgpt_bot/tma?startapp=demo-app" ,
110+ "https://example.com/tma?tgWebAppStartParam=demo-app" ,
111+ ) ;
112+
113+ expect ( message ) . toContain ( "Preview URL:" ) ;
114+ expect ( message ) . toContain ( "Telegram Link:" ) ;
115+ expect ( message ) . toContain ( "TMA URL:" ) ;
116+ } ) ;
106117} ) ;
0 commit comments