From 9027625b618a8c6a2cc88f8ddc2f99e1ee7f2527 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Wed, 3 Dec 2025 11:26:15 +0000 Subject: [PATCH 1/6] refactor: remove TabHeader and onDone callback from CloudView - Removed TabHeader component from CloudView as it is no longer needed - Removed onDone prop from CloudView component definition and usage - Updated all test files to reflect the removal of onDone prop - Kept Button import that was accidentally removed initially --- webview-ui/src/App.tsx | 1 - webview-ui/src/__tests__/App.spec.tsx | 8 +- webview-ui/src/components/cloud/CloudView.tsx | 10 +- .../cloud/__tests__/CloudView.spec.tsx | 110 +++--------------- 4 files changed, 17 insertions(+), 112 deletions(-) diff --git a/webview-ui/src/App.tsx b/webview-ui/src/App.tsx index 6cd0ee3c842..dbf26be7c53 100644 --- a/webview-ui/src/App.tsx +++ b/webview-ui/src/App.tsx @@ -263,7 +263,6 @@ const App = () => { isAuthenticated={cloudIsAuthenticated} cloudApiUrl={cloudApiUrl} organizations={cloudOrganizations} - onDone={() => switchTab("chat")} /> )} ({ })) vi.mock("@src/components/cloud/CloudView", () => ({ - CloudView: function CloudView({ onDone }: { onDone: () => void }) { - return ( -
- Cloud View -
- ) + CloudView: function CloudView() { + return
Cloud View
}, })) diff --git a/webview-ui/src/components/cloud/CloudView.tsx b/webview-ui/src/components/cloud/CloudView.tsx index 9ac21b0847d..492b8a9204a 100644 --- a/webview-ui/src/components/cloud/CloudView.tsx +++ b/webview-ui/src/components/cloud/CloudView.tsx @@ -11,7 +11,7 @@ import { ToggleSwitch } from "@/components/ui/toggle-switch" import { renderCloudBenefitsContent } from "./CloudUpsellDialog" import { CircleAlert, Info, Lock, TriangleAlert } from "lucide-react" import { cn } from "@/lib/utils" -import { Tab, TabContent, TabHeader } from "../common/Tab" +import { Tab, TabContent } from "../common/Tab" import { Button } from "@/components/ui/button" import { OrganizationSwitcher } from "./OrganizationSwitcher" import { StandardTooltip } from "../ui" @@ -23,11 +23,10 @@ type CloudViewProps = { userInfo: CloudUserInfo | null isAuthenticated: boolean cloudApiUrl?: string - onDone: () => void organizations?: CloudOrganizationMembership[] } -export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone, organizations = [] }: CloudViewProps) => { +export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, organizations = [] }: CloudViewProps) => { const { t } = useAppTranslation() const { remoteControlEnabled, @@ -159,11 +158,6 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone, orga return ( - -

{isAuthenticated && t("cloud:title")}

- -
- {isAuthenticated ? ( <> diff --git a/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx b/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx index 22934abedf5..5643cafec22 100644 --- a/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx +++ b/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx @@ -69,14 +69,7 @@ Object.defineProperty(window, "IMAGES_BASE_URI", { describe("CloudView", () => { it("should display benefits when user is not authenticated", () => { - render( - {}} - />, - ) + render() // Check that the benefits section is displayed expect(screen.getByRole("heading", { name: "Connect to Roo Code Cloud" })).toBeInTheDocument() @@ -94,14 +87,7 @@ describe("CloudView", () => { email: "test@example.com", } - render( - {}} - />, - ) + render() // Check that the benefits section is NOT displayed expect( @@ -123,14 +109,7 @@ describe("CloudView", () => { extensionBridgeEnabled: true, } - render( - {}} - />, - ) + render() // Check that the remote control toggle is displayed expect(screen.getByTestId("remote-control-toggle")).toBeInTheDocument() @@ -147,14 +126,7 @@ describe("CloudView", () => { extensionBridgeEnabled: false, } - render( - {}} - />, - ) + render() // Check that the remote control toggle is NOT displayed expect(screen.queryByTestId("remote-control-toggle")).not.toBeInTheDocument() @@ -172,14 +144,7 @@ describe("CloudView", () => { extensionBridgeEnabled: true, // Bridge enabled but roomote control disabled } - render( - {}} - />, - ) + render() // Check that the remote control toggle is NOT displayed expect(screen.queryByTestId("remote-control-toggle")).not.toBeInTheDocument() @@ -202,14 +167,7 @@ describe("CloudView", () => { extensionBridgeEnabled: true, } - render( - {}} - />, - ) + render() // Check that the remote control toggle IS displayed for organization users // (The ClineProvider would set featureRoomoteControlEnabled to true for org users) @@ -226,14 +184,7 @@ describe("CloudView", () => { email: "test@example.com", } - render( - {}} - />, - ) + render() // Check that the cloud URL pill is NOT displayed for production URL expect(screen.queryByText(/Roo Code Cloud URL:/)).not.toBeInTheDocument() @@ -245,14 +196,7 @@ describe("CloudView", () => { email: "test@example.com", } - render( - {}} - />, - ) + render() // Check that the cloud URL pill is displayed with the staging URL expect(screen.getByText(/Roo Code Cloud URL:/)).toBeInTheDocument() @@ -260,14 +204,7 @@ describe("CloudView", () => { }) it("should display cloud URL pill for non-authenticated users when not pointing to production", () => { - render( - {}} - />, - ) + render() // Check that the cloud URL pill is displayed even when not authenticated expect(screen.getByText(/Roo Code Cloud URL:/)).toBeInTheDocument() @@ -280,7 +217,7 @@ describe("CloudView", () => { email: "test@example.com", } - render( {}} />) + render() // Check that the cloud URL pill is NOT displayed when cloudApiUrl is undefined expect(screen.queryByText(/Roo Code Cloud URL:/)).not.toBeInTheDocument() @@ -294,14 +231,7 @@ describe("CloudView", () => { organizationName: "Test Organization", } - render( - {}} - />, - ) + render() // Check that the task sync toggle is disabled for organization users const taskSyncToggle = screen.getByTestId("task-sync-toggle") @@ -326,14 +256,7 @@ describe("CloudView", () => { // No organizationId - regular user } - render( - {}} - />, - ) + render() // Check that the task sync toggle is enabled for non-organization users const taskSyncToggle = screen.getByTestId("task-sync-toggle") @@ -353,14 +276,7 @@ describe("CloudView", () => { } // Test with task sync enabled - render( - {}} - />, - ) + render() // Check that the toggle shows the current state (enabled in this case) const taskSyncToggle = screen.getByTestId("task-sync-toggle") From d9c74735c34c59ff1dc4c076f551350ed7f2bafc Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Wed, 3 Dec 2025 11:58:59 +0000 Subject: [PATCH 2/6] Updates upsell copy to reflect today's product --- .../components/cloud/CloudUpsellDialog.tsx | 27 ++++++++++++------- webview-ui/src/components/cloud/CloudView.tsx | 7 ++--- webview-ui/src/components/ui/button.tsx | 2 +- webview-ui/src/i18n/locales/ca/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/de/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/en/cloud.json | 6 +++-- webview-ui/src/i18n/locales/es/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/fr/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/hi/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/id/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/it/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/ja/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/ko/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/nl/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/pl/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/pt-BR/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/ru/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/tr/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/vi/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/zh-CN/cloud.json | 12 +++++---- webview-ui/src/i18n/locales/zh-TW/cloud.json | 12 +++++---- 21 files changed, 146 insertions(+), 100 deletions(-) diff --git a/webview-ui/src/components/cloud/CloudUpsellDialog.tsx b/webview-ui/src/components/cloud/CloudUpsellDialog.tsx index 6f1d8e74810..847ab25cf7a 100644 --- a/webview-ui/src/components/cloud/CloudUpsellDialog.tsx +++ b/webview-ui/src/components/cloud/CloudUpsellDialog.tsx @@ -1,7 +1,7 @@ import { useTranslation } from "react-i18next" import { Dialog, DialogContent, DialogHeader, Button } from "@/components/ui" import RooHero from "../welcome/RooHero" -import { CircleDollarSign, FileStack, Router, Share } from "lucide-react" +import { ArrowRight, Brain, Cable, CircleDollarSign, FileStack, Router, Users2 } from "lucide-react" import { DialogTitle } from "@radix-ui/react-dialog" interface CloudUpsellDialogProps { @@ -19,21 +19,29 @@ export const renderCloudBenefitsContent = (t: any) => {

{t("cloud:cloudBenefitsTitle")}

-
    +
    • - - {t("cloud:cloudBenefitWalkaway")} + + {t("cloud:cloudBenefitProvider")} +
    • +
    • + + {t("cloud:cloudBenefitCloudAgents")}
    • - - {t("cloud:cloudBenefitSharing")} + + {t("cloud:cloudBenefitTriggers")} +
    • +
    • + + {t("cloud:cloudBenefitWalkaway")}
    • - + {t("cloud:cloudBenefitMetrics")}
    • - + {t("cloud:cloudBenefitHistory")}
    @@ -56,8 +64,9 @@ export const CloudUpsellDialog = ({ open, onOpenChange, onConnect }: CloudUpsell {renderCloudBenefitsContent(t)}
    -
diff --git a/webview-ui/src/components/cloud/CloudView.tsx b/webview-ui/src/components/cloud/CloudView.tsx index 492b8a9204a..015aa57208c 100644 --- a/webview-ui/src/components/cloud/CloudView.tsx +++ b/webview-ui/src/components/cloud/CloudView.tsx @@ -9,7 +9,7 @@ import { vscode } from "@src/utils/vscode" import { telemetryClient } from "@src/utils/TelemetryClient" import { ToggleSwitch } from "@/components/ui/toggle-switch" import { renderCloudBenefitsContent } from "./CloudUpsellDialog" -import { CircleAlert, Info, Lock, TriangleAlert } from "lucide-react" +import { ArrowRight, CircleAlert, Info, Lock, TriangleAlert } from "lucide-react" import { cn } from "@/lib/utils" import { Tab, TabContent } from "../common/Tab" import { Button } from "@/components/ui/button" @@ -265,12 +265,13 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, organization ) : ( <> -
+
{renderCloudBenefitsContent(t)}
{!authInProgress && ( - )} diff --git a/webview-ui/src/components/ui/button.tsx b/webview-ui/src/components/ui/button.tsx index 74e854c973a..ccb0886511b 100644 --- a/webview-ui/src/components/ui/button.tsx +++ b/webview-ui/src/components/ui/button.tsx @@ -5,7 +5,7 @@ import { cva, type VariantProps } from "class-variance-authority" import { cn } from "@/lib/utils" const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-base font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer active:opacity-80", + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-base font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer active:opacity-80", { variants: { variant: { diff --git a/webview-ui/src/i18n/locales/ca/cloud.json b/webview-ui/src/i18n/locales/ca/cloud.json index f1246d05edc..077cdf42fa3 100644 --- a/webview-ui/src/i18n/locales/ca/cloud.json +++ b/webview-ui/src/i18n/locales/ca/cloud.json @@ -4,11 +4,13 @@ "logOut": "Tancar sessió", "testApiAuthentication": "Provar autenticació d'API", "signIn": "Connecta't a Roo Code Cloud", - "connect": "Connecta", - "cloudBenefitsTitle": "Connecta't a Roo Code Cloud", - "cloudBenefitWalkaway": "Segueix i controla tasques des de qualsevol lloc amb Roomote Control", - "cloudBenefitSharing": "Comparteix tasques amb altres", - "cloudBenefitHistory": "Accedeix al teu historial de tasques", + "connect": "Comença", + "cloudBenefitsTitle": "Prova Roo Code Cloud", + "cloudBenefitProvider": "Accedeix a models gratuïts i de pagament que funcionen molt bé amb Roo", + "cloudBenefitCloudAgents": "Dona tasques a agents autònoms al núvol", + "cloudBenefitTriggers": "Obtén revisions de codi a Github, inicia tasques des de Slack i més", + "cloudBenefitWalkaway": "Segueix i controla tasques des de qualsevol lloc (inclòs el telèfon)", + "cloudBenefitHistory": "Accedeix al teu historial de tasques des de qualsevol lloc i comparteix-les amb altres", "cloudBenefitMetrics": "Obtén una visió holística del teu consum de tokens", "visitCloudWebsite": "Visita Roo Code Cloud", "taskSync": "Sincronització de tasques", diff --git a/webview-ui/src/i18n/locales/de/cloud.json b/webview-ui/src/i18n/locales/de/cloud.json index 774d403fc8f..70e480cbc4e 100644 --- a/webview-ui/src/i18n/locales/de/cloud.json +++ b/webview-ui/src/i18n/locales/de/cloud.json @@ -4,11 +4,13 @@ "logOut": "Abmelden", "testApiAuthentication": "API-Authentifizierung testen", "signIn": "Mit Roo Code Cloud verbinden", - "connect": "Jetzt verbinden", - "cloudBenefitsTitle": "Mit Roo Code Cloud verbinden", - "cloudBenefitWalkaway": "Verfolge und steuere Aufgaben von überall mit Roomote Control", - "cloudBenefitSharing": "Aufgaben mit anderen teilen", - "cloudBenefitHistory": "Auf deinen Aufgabenverlauf zugreifen", + "connect": "Loslegen", + "cloudBenefitsTitle": "Roo Code Cloud ausprobieren", + "cloudBenefitProvider": "Zugriff auf kostenlose und kostenpflichtige Modelle, die hervorragend mit Roo funktionieren", + "cloudBenefitCloudAgents": "Aufgaben an autonome Cloud-Agenten übergeben", + "cloudBenefitTriggers": "Code-Reviews auf Github erhalten, Aufgaben aus Slack starten und mehr", + "cloudBenefitWalkaway": "Aufgaben von überall verfolgen und steuern (auch vom Handy)", + "cloudBenefitHistory": "Von überall auf deinen Aufgabenverlauf zugreifen und ihn mit anderen teilen", "cloudBenefitMetrics": "Erhalte einen ganzheitlichen Überblick über deinen Token-Verbrauch", "visitCloudWebsite": "Roo Code Cloud besuchen", "taskSync": "Aufgabensynchronisierung", diff --git a/webview-ui/src/i18n/locales/en/cloud.json b/webview-ui/src/i18n/locales/en/cloud.json index 5b91b644499..4ba0d5f62d2 100644 --- a/webview-ui/src/i18n/locales/en/cloud.json +++ b/webview-ui/src/i18n/locales/en/cloud.json @@ -6,9 +6,11 @@ "signIn": "Connect to Roo Code Cloud", "connect": "Get started", "cloudBenefitsTitle": "Try Roo Code Cloud", + "cloudBenefitProvider": "Access free and paid models that work great with Roo", + "cloudBenefitCloudAgents": "Give tasks to autonomous Cloud agents", + "cloudBenefitTriggers": "Get code reviews on Github, start tasks from Slack and more", "cloudBenefitWalkaway": "Follow and control tasks from anywhere (including your phone)", - "cloudBenefitSharing": "Share tasks with others", - "cloudBenefitHistory": "Access your task history from anywhere", + "cloudBenefitHistory": "Access your task history from anywhere and share them with others", "cloudBenefitMetrics": "Get a holistic view of your token consumption", "visitCloudWebsite": "Visit Roo Code Cloud", "taskSync": "Task sync", diff --git a/webview-ui/src/i18n/locales/es/cloud.json b/webview-ui/src/i18n/locales/es/cloud.json index 0d7e811491b..1281cccb419 100644 --- a/webview-ui/src/i18n/locales/es/cloud.json +++ b/webview-ui/src/i18n/locales/es/cloud.json @@ -4,11 +4,13 @@ "logOut": "Cerrar sesión", "testApiAuthentication": "Probar autenticación de API", "signIn": "Conectar a Roo Code Cloud", - "connect": "Conectar ahora", - "cloudBenefitsTitle": "Conectar a Roo Code Cloud", - "cloudBenefitWalkaway": "Sigue y controla tareas desde cualquier lugar con Roomote Control", - "cloudBenefitSharing": "Comparte tareas con otros", - "cloudBenefitHistory": "Accede a tu historial de tareas", + "connect": "Empezar", + "cloudBenefitsTitle": "Prueba Roo Code Cloud", + "cloudBenefitProvider": "Accede a modelos gratuitos y de pago que funcionan genial con Roo", + "cloudBenefitCloudAgents": "Da tareas a agentes autónomos en la nube", + "cloudBenefitTriggers": "Obtén revisiones de código en Github, inicia tareas desde Slack y más", + "cloudBenefitWalkaway": "Sigue y controla tareas desde cualquier lugar (incluido tu teléfono)", + "cloudBenefitHistory": "Accede a tu historial de tareas desde cualquier lugar y compártelas con otros", "cloudBenefitMetrics": "Obtén una visión holística de tu consumo de tokens", "visitCloudWebsite": "Visitar Roo Code Cloud", "taskSync": "Sincronización de tareas", diff --git a/webview-ui/src/i18n/locales/fr/cloud.json b/webview-ui/src/i18n/locales/fr/cloud.json index d9c8667bd67..8e031aaad8a 100644 --- a/webview-ui/src/i18n/locales/fr/cloud.json +++ b/webview-ui/src/i18n/locales/fr/cloud.json @@ -4,11 +4,13 @@ "logOut": "Déconnexion", "testApiAuthentication": "Tester l'authentification API", "signIn": "Se connecter à Roo Code Cloud", - "connect": "Se connecter maintenant", - "cloudBenefitsTitle": "Se connecter à Roo Code Cloud", - "cloudBenefitWalkaway": "Suivez et contrôlez les tâches depuis n'importe où avec Roomote Control", - "cloudBenefitSharing": "Partagez des tâches avec d'autres", - "cloudBenefitHistory": "Accédez à votre historique de tâches", + "connect": "Commencer", + "cloudBenefitsTitle": "Essayez Roo Code Cloud", + "cloudBenefitProvider": "Accédez à des modèles gratuits et payants qui fonctionnent parfaitement avec Roo", + "cloudBenefitCloudAgents": "Donnez des tâches à des agents Cloud autonomes", + "cloudBenefitTriggers": "Obtenez des revues de code sur Github, lancez des tâches depuis Slack et plus encore", + "cloudBenefitWalkaway": "Suivez et contrôlez les tâches de n'importe où (y compris votre téléphone)", + "cloudBenefitHistory": "Accédez à votre historique de tâches de n'importe où et partagez-les avec d'autres", "cloudBenefitMetrics": "Obtenez une vue holistique de votre consommation de tokens", "visitCloudWebsite": "Visiter Roo Code Cloud", "taskSync": "Synchronisation des tâches", diff --git a/webview-ui/src/i18n/locales/hi/cloud.json b/webview-ui/src/i18n/locales/hi/cloud.json index c29e3916a3d..ecf6e1f1010 100644 --- a/webview-ui/src/i18n/locales/hi/cloud.json +++ b/webview-ui/src/i18n/locales/hi/cloud.json @@ -4,11 +4,13 @@ "logOut": "लॉग आउट", "testApiAuthentication": "API प्रमाणीकरण का परीक्षण करें", "signIn": "Roo Code Cloud से कनेक्ट करें", - "connect": "अभी कनेक्ट करें", - "cloudBenefitsTitle": "Roo Code Cloud से कनेक्ट करें", - "cloudBenefitWalkaway": "Roomote Control के साथ कहीं से भी कार्यों को फॉलो और नियंत्रित करें", - "cloudBenefitSharing": "दूसरों के साथ कार्य साझा करें", - "cloudBenefitHistory": "अपने कार्य इतिहास तक पहुंचें", + "connect": "शुरू करें", + "cloudBenefitsTitle": "Roo Code Cloud आज़माएं", + "cloudBenefitProvider": "मुफ़्त और सशुल्क मॉडल एक्सेस करें जो Roo के साथ बढ़िया काम करते हैं", + "cloudBenefitCloudAgents": "स्वायत्त क्लाउड एजेंटों को कार्य दें", + "cloudBenefitTriggers": "Github पर कोड समीक्षाएं प्राप्त करें, Slack से कार्य शुरू करें और बहुत कुछ", + "cloudBenefitWalkaway": "कहीं से भी कार्यों का पालन और नियंत्रण करें (अपने फोन सहित)", + "cloudBenefitHistory": "कहीं से भी अपने कार्य इतिहास तक पहुंचें और उन्हें दूसरों के साथ साझा करें", "cloudBenefitMetrics": "अपने टोकन उपभोग का समग्र दृश्य प्राप्त करें", "visitCloudWebsite": "Roo Code Cloud पर जाएं", "taskSync": "कार्य सिंक", diff --git a/webview-ui/src/i18n/locales/id/cloud.json b/webview-ui/src/i18n/locales/id/cloud.json index 9b5967931a2..3e3e293f973 100644 --- a/webview-ui/src/i18n/locales/id/cloud.json +++ b/webview-ui/src/i18n/locales/id/cloud.json @@ -4,11 +4,13 @@ "logOut": "Keluar", "testApiAuthentication": "Uji Autentikasi API", "signIn": "Hubungkan ke Roo Code Cloud", - "connect": "Hubungkan Sekarang", - "cloudBenefitsTitle": "Hubungkan ke Roo Code Cloud", - "cloudBenefitWalkaway": "Ikuti dan kontrol tugas dari mana saja dengan Roomote Control", - "cloudBenefitSharing": "Bagikan tugas dengan orang lain", - "cloudBenefitHistory": "Akses riwayat tugas Anda", + "connect": "Mulai", + "cloudBenefitsTitle": "Coba Roo Code Cloud", + "cloudBenefitProvider": "Akses model gratis dan berbayar yang bekerja sangat baik dengan Roo", + "cloudBenefitCloudAgents": "Berikan tugas kepada agen Cloud otonom", + "cloudBenefitTriggers": "Dapatkan ulasan kode di Github, mulai tugas dari Slack, dan lainnya", + "cloudBenefitWalkaway": "Ikuti dan kontrol tugas dari mana saja (termasuk ponsel Anda)", + "cloudBenefitHistory": "Akses riwayat tugas Anda dari mana saja dan bagikan dengan orang lain", "cloudBenefitMetrics": "Dapatkan tampilan holistik konsumsi token Anda", "visitCloudWebsite": "Kunjungi Roo Code Cloud", "taskSync": "Sinkronisasi tugas", diff --git a/webview-ui/src/i18n/locales/it/cloud.json b/webview-ui/src/i18n/locales/it/cloud.json index 0c34146d258..cd575786d5c 100644 --- a/webview-ui/src/i18n/locales/it/cloud.json +++ b/webview-ui/src/i18n/locales/it/cloud.json @@ -4,11 +4,13 @@ "logOut": "Disconnetti", "testApiAuthentication": "Verifica autenticazione API", "signIn": "Connetti a Roo Code Cloud", - "connect": "Connetti ora", - "cloudBenefitsTitle": "Connetti a Roo Code Cloud", - "cloudBenefitWalkaway": "Segui e controlla le attività da qualsiasi luogo con Roomote Control", - "cloudBenefitSharing": "Condividi attività con altri", - "cloudBenefitHistory": "Accedi alla cronologia delle tue attività", + "connect": "Inizia", + "cloudBenefitsTitle": "Prova Roo Code Cloud", + "cloudBenefitProvider": "Accedi a modelli gratuiti e a pagamento che funzionano perfettamente con Roo", + "cloudBenefitCloudAgents": "Assegna attività ad agenti Cloud autonomi", + "cloudBenefitTriggers": "Ottieni revisioni del codice su Github, avvia attività da Slack e altro", + "cloudBenefitWalkaway": "Segui e controlla le attività da qualsiasi luogo (incluso il tuo telefono)", + "cloudBenefitHistory": "Accedi alla cronologia delle tue attività da qualsiasi luogo e condividile con altri", "cloudBenefitMetrics": "Ottieni una visione olistica del tuo consumo di token", "visitCloudWebsite": "Visita Roo Code Cloud", "taskSync": "Sincronizzazione attività", diff --git a/webview-ui/src/i18n/locales/ja/cloud.json b/webview-ui/src/i18n/locales/ja/cloud.json index 95fb9530e5a..d25f61b78c8 100644 --- a/webview-ui/src/i18n/locales/ja/cloud.json +++ b/webview-ui/src/i18n/locales/ja/cloud.json @@ -4,11 +4,13 @@ "logOut": "ログアウト", "testApiAuthentication": "API認証をテスト", "signIn": "Roo Code Cloud に接続", - "connect": "今すぐ接続", - "cloudBenefitsTitle": "Roo Code Cloudに接続", - "cloudBenefitWalkaway": "Roomote Controlでどこからでもタスクをフォローし制御", - "cloudBenefitSharing": "他の人とタスクを共有", - "cloudBenefitHistory": "タスク履歴にアクセス", + "connect": "始める", + "cloudBenefitsTitle": "Roo Code Cloudを試す", + "cloudBenefitProvider": "Rooと相性の良い無料および有料モデルにアクセス", + "cloudBenefitCloudAgents": "自律型クラウドエージェントにタスクを依頼", + "cloudBenefitTriggers": "Githubでコードレビューを取得、Slackからタスクを開始など", + "cloudBenefitWalkaway": "どこからでも(スマートフォンを含む)タスクを追跡および制御", + "cloudBenefitHistory": "どこからでもタスク履歴にアクセスし、他の人と共有", "cloudBenefitMetrics": "トークン消費の全体像を把握", "visitCloudWebsite": "Roo Code Cloudを訪問", "taskSync": "タスク同期", diff --git a/webview-ui/src/i18n/locales/ko/cloud.json b/webview-ui/src/i18n/locales/ko/cloud.json index ec93f8bcc37..97470a5c7a5 100644 --- a/webview-ui/src/i18n/locales/ko/cloud.json +++ b/webview-ui/src/i18n/locales/ko/cloud.json @@ -4,11 +4,13 @@ "logOut": "로그아웃", "testApiAuthentication": "API 인증 테스트", "signIn": "Roo Code Cloud에 연결", - "connect": "지금 연결", - "cloudBenefitsTitle": "Roo Code Cloud에 연결", - "cloudBenefitWalkaway": "Roomote Control로 어디서나 작업을 팔로우하고 제어하세요", - "cloudBenefitSharing": "다른 사람과 작업 공유", - "cloudBenefitHistory": "작업 기록에 액세스", + "connect": "시작하기", + "cloudBenefitsTitle": "Roo Code Cloud 체험하기", + "cloudBenefitProvider": "Roo와 잘 작동하는 무료 및 유료 모델에 액세스하세요", + "cloudBenefitCloudAgents": "자율 클라우드 에이전트에게 작업 부여", + "cloudBenefitTriggers": "Github에서 코드 리뷰 받기, Slack에서 작업 시작 등", + "cloudBenefitWalkaway": "어디서나(휴대전화 포함) 작업을 팔로우하고 제어하세요", + "cloudBenefitHistory": "어디서나 작업 기록에 액세스하고 다른 사람과 공유하세요", "cloudBenefitMetrics": "토큰 소비에 대한 전체적인 보기 얻기", "visitCloudWebsite": "Roo Code Cloud 방문", "taskSync": "작업 동기화", diff --git a/webview-ui/src/i18n/locales/nl/cloud.json b/webview-ui/src/i18n/locales/nl/cloud.json index fe5f078b56f..dad073fdc2f 100644 --- a/webview-ui/src/i18n/locales/nl/cloud.json +++ b/webview-ui/src/i18n/locales/nl/cloud.json @@ -4,11 +4,13 @@ "logOut": "Uitloggen", "testApiAuthentication": "API-authenticatie testen", "signIn": "Verbind met Roo Code Cloud", - "connect": "Nu verbinden", - "cloudBenefitsTitle": "Verbind met Roo Code Cloud", - "cloudBenefitWalkaway": "Volg en beheer taken van overal met Roomote Control", - "cloudBenefitSharing": "Deel taken met anderen", - "cloudBenefitHistory": "Toegang tot je taakgeschiedenis", + "connect": "Aan de slag", + "cloudBenefitsTitle": "Probeer Roo Code Cloud", + "cloudBenefitProvider": "Toegang tot gratis en betaalde modellen die geweldig werken met Roo", + "cloudBenefitCloudAgents": "Geef taken aan autonome Cloud-agents", + "cloudBenefitTriggers": "Krijg code reviews op Github, start taken vanuit Slack en meer", + "cloudBenefitWalkaway": "Volg en beheer taken van overal (inclusief je telefoon)", + "cloudBenefitHistory": "Toegang tot je taakgeschiedenis van overal en deel ze met anderen", "cloudBenefitMetrics": "Krijg een holistisch overzicht van je tokenverbruik", "visitCloudWebsite": "Bezoek Roo Code Cloud", "taskSync": "Taaksynchronisatie", diff --git a/webview-ui/src/i18n/locales/pl/cloud.json b/webview-ui/src/i18n/locales/pl/cloud.json index 23c6e03d788..827eaa70ef7 100644 --- a/webview-ui/src/i18n/locales/pl/cloud.json +++ b/webview-ui/src/i18n/locales/pl/cloud.json @@ -4,11 +4,13 @@ "logOut": "Wyloguj", "testApiAuthentication": "Testuj uwierzytelnianie API", "signIn": "Połącz z Roo Code Cloud", - "connect": "Połącz teraz", - "cloudBenefitsTitle": "Połącz z Roo Code Cloud", - "cloudBenefitWalkaway": "Śledź i kontroluj zadania z dowolnego miejsca za pomocą Roomote Control", - "cloudBenefitSharing": "Udostępniaj zadania innym", - "cloudBenefitHistory": "Uzyskaj dostęp do historii zadań", + "connect": "Zacznij", + "cloudBenefitsTitle": "Wypróbuj Roo Code Cloud", + "cloudBenefitProvider": "Uzyskaj dostęp do darmowych i płatnych modeli, które świetnie współpracują z Roo", + "cloudBenefitCloudAgents": "Zlecaj zadania autonomicznym agentom w chmurze", + "cloudBenefitTriggers": "Otrzymuj recenzje kodu na Githubie, uruchamiaj zadania ze Slacka i nie tylko", + "cloudBenefitWalkaway": "Śledź i kontroluj zadania z dowolnego miejsca (również z telefonu)", + "cloudBenefitHistory": "Uzyskaj dostęp do historii zadań z dowolnego miejsca i udostępniaj je innym", "cloudBenefitMetrics": "Uzyskaj całościowy widok zużycia tokenów", "visitCloudWebsite": "Odwiedź Roo Code Cloud", "taskSync": "Synchronizacja zadań", diff --git a/webview-ui/src/i18n/locales/pt-BR/cloud.json b/webview-ui/src/i18n/locales/pt-BR/cloud.json index 173af71a4ca..1876f1a6669 100644 --- a/webview-ui/src/i18n/locales/pt-BR/cloud.json +++ b/webview-ui/src/i18n/locales/pt-BR/cloud.json @@ -4,11 +4,13 @@ "logOut": "Sair", "testApiAuthentication": "Testar Autenticação de API", "signIn": "Conectar ao Roo Code Cloud", - "connect": "Conectar Agora", - "cloudBenefitsTitle": "Conectar ao Roo Code Cloud", - "cloudBenefitWalkaway": "Acompanhe e controle tarefas de qualquer lugar com Roomote Control", - "cloudBenefitSharing": "Compartilhe tarefas com outros", - "cloudBenefitHistory": "Acesse seu histórico de tarefas", + "connect": "Começar", + "cloudBenefitsTitle": "Experimente o Roo Code Cloud", + "cloudBenefitProvider": "Acesse modelos gratuitos e pagos que funcionam muito bem com o Roo", + "cloudBenefitCloudAgents": "Dê tarefas a agentes autônomos na nuvem", + "cloudBenefitTriggers": "Obtenha revisões de código no Github, inicie tarefas do Slack e muito mais", + "cloudBenefitWalkaway": "Acompanhe e controle tarefas de qualquer lugar (incluindo seu telefone)", + "cloudBenefitHistory": "Acesse seu histórico de tarefas de qualquer lugar e compartilhe com outros", "cloudBenefitMetrics": "Obtenha uma visão holística do seu consumo de tokens", "visitCloudWebsite": "Visitar Roo Code Cloud", "taskSync": "Sincronização de tarefas", diff --git a/webview-ui/src/i18n/locales/ru/cloud.json b/webview-ui/src/i18n/locales/ru/cloud.json index fbaa6654aa6..438a1a90fd6 100644 --- a/webview-ui/src/i18n/locales/ru/cloud.json +++ b/webview-ui/src/i18n/locales/ru/cloud.json @@ -4,11 +4,13 @@ "logOut": "Выход", "testApiAuthentication": "Проверить аутентификацию API", "signIn": "Подключиться к Roo Code Cloud", - "connect": "Подключиться сейчас", - "cloudBenefitsTitle": "Подключиться к Roo Code Cloud", - "cloudBenefitWalkaway": "Отслеживайте и управляйте задачами откуда угодно с Roomote Control", - "cloudBenefitSharing": "Делитесь задачами с другими", - "cloudBenefitHistory": "Получите доступ к истории задач", + "connect": "Начать", + "cloudBenefitsTitle": "Попробуйте Roo Code Cloud", + "cloudBenefitProvider": "Доступ к бесплатным и платным моделям, которые отлично работают с Roo", + "cloudBenefitCloudAgents": "Поручайте задачи автономным облачным агентам", + "cloudBenefitTriggers": "Получайте код-ревью на Github, запускайте задачи из Slack и многое другое", + "cloudBenefitWalkaway": "Отслеживайте и управляйте задачами откуда угодно (включая телефон)", + "cloudBenefitHistory": "Доступ к истории задач откуда угодно и возможность делиться ими с другими", "cloudBenefitMetrics": "Получите целостное представление о потреблении токенов", "visitCloudWebsite": "Посетить Roo Code Cloud", "taskSync": "Синхронизация задач", diff --git a/webview-ui/src/i18n/locales/tr/cloud.json b/webview-ui/src/i18n/locales/tr/cloud.json index 4f67cc184ab..24e767a6c37 100644 --- a/webview-ui/src/i18n/locales/tr/cloud.json +++ b/webview-ui/src/i18n/locales/tr/cloud.json @@ -4,11 +4,13 @@ "logOut": "Çıkış yap", "testApiAuthentication": "API Kimlik Doğrulamayı Test Et", "signIn": "Roo Code Cloud'a bağlan", - "connect": "Şimdi Bağlan", - "cloudBenefitsTitle": "Roo Code Cloud'a bağlan", - "cloudBenefitWalkaway": "Roomote Control ile görevleri her yerden takip et ve kontrol et", - "cloudBenefitSharing": "Görevleri başkalarıyla paylaş", - "cloudBenefitHistory": "Görev geçmişine eriş", + "connect": "Başlayın", + "cloudBenefitsTitle": "Roo Code Cloud'u Deneyin", + "cloudBenefitProvider": "Roo ile harika çalışan ücretsiz ve ücretli modellere erişin", + "cloudBenefitCloudAgents": "Otonom Bulut ajanlarına görevler verin", + "cloudBenefitTriggers": "Github'da kod incelemeleri alın, Slack'ten görevler başlatın ve daha fazlasını yapın", + "cloudBenefitWalkaway": "Görevleri her yerden (telefonunuz dahil) takip edin ve kontrol edin", + "cloudBenefitHistory": "Görev geçmişinize her yerden erişin ve başkalarıyla paylaşın", "cloudBenefitMetrics": "Token tüketiminizin bütünsel görünümünü elde edin", "visitCloudWebsite": "Roo Code Cloud'u ziyaret et", "taskSync": "Görev senkronizasyonu", diff --git a/webview-ui/src/i18n/locales/vi/cloud.json b/webview-ui/src/i18n/locales/vi/cloud.json index dbd89516d6e..e9c4dee7202 100644 --- a/webview-ui/src/i18n/locales/vi/cloud.json +++ b/webview-ui/src/i18n/locales/vi/cloud.json @@ -4,11 +4,13 @@ "logOut": "Đăng xuất", "testApiAuthentication": "Kiểm tra xác thực API", "signIn": "Kết nối với Roo Code Cloud", - "connect": "Kết nối ngay", - "cloudBenefitsTitle": "Kết nối với Roo Code Cloud", - "cloudBenefitWalkaway": "Theo dõi và điều khiển tác vụ từ bất kỳ đâu với Roomote Control", - "cloudBenefitSharing": "Chia sẻ tác vụ với người khác", - "cloudBenefitHistory": "Truy cập lịch sử tác vụ của bạn", + "connect": "Bắt đầu", + "cloudBenefitsTitle": "Dùng thử Roo Code Cloud", + "cloudBenefitProvider": "Truy cập các mô hình miễn phí và trả phí hoạt động tuyệt vời với Roo", + "cloudBenefitCloudAgents": "Giao nhiệm vụ cho các agent đám mây tự trị", + "cloudBenefitTriggers": "Nhận đánh giá mã trên Github, bắt đầu tác vụ từ Slack và hơn thế nữa", + "cloudBenefitWalkaway": "Theo dõi và kiểm soát các tác vụ từ mọi nơi (bao gồm cả điện thoại của bạn)", + "cloudBenefitHistory": "Truy cập lịch sử tác vụ của bạn từ mọi nơi và chia sẻ chúng với người khác", "cloudBenefitMetrics": "Có cái nhìn toàn diện về mức tiêu thụ token của bạn", "visitCloudWebsite": "Truy cập Roo Code Cloud", "taskSync": "Đồng bộ tác vụ", diff --git a/webview-ui/src/i18n/locales/zh-CN/cloud.json b/webview-ui/src/i18n/locales/zh-CN/cloud.json index 705fcce2312..510254132d2 100644 --- a/webview-ui/src/i18n/locales/zh-CN/cloud.json +++ b/webview-ui/src/i18n/locales/zh-CN/cloud.json @@ -4,11 +4,13 @@ "logOut": "退出登录", "testApiAuthentication": "测试 API 认证", "signIn": "连接到 Roo Code Cloud", - "connect": "立即连接", - "cloudBenefitsTitle": "连接到 Roo Code Cloud", - "cloudBenefitWalkaway": "使用 Roomote Control 随时随地跟踪和控制任务", - "cloudBenefitSharing": "与他人共享任务", - "cloudBenefitHistory": "访问您的任务历史", + "connect": "开始使用", + "cloudBenefitsTitle": "试用 Roo Code Cloud", + "cloudBenefitProvider": "访问与 Roo 完美配合的免费和付费模型", + "cloudBenefitCloudAgents": "将任务分配给自主云代理", + "cloudBenefitTriggers": "在 Github 上获取代码审查,从 Slack 启动任务等等", + "cloudBenefitWalkaway": "随时随地(包括您的手机)跟踪和控制任务", + "cloudBenefitHistory": "随时随地访问您的任务历史记录并与他人共享", "cloudBenefitMetrics": "获取您的令牌消耗的整体视图", "visitCloudWebsite": "访问 Roo Code Cloud", "taskSync": "任务同步", diff --git a/webview-ui/src/i18n/locales/zh-TW/cloud.json b/webview-ui/src/i18n/locales/zh-TW/cloud.json index e4cdd78be3f..6a0cb9a7ce3 100644 --- a/webview-ui/src/i18n/locales/zh-TW/cloud.json +++ b/webview-ui/src/i18n/locales/zh-TW/cloud.json @@ -4,11 +4,13 @@ "logOut": "登出", "testApiAuthentication": "測試 API 認證", "signIn": "連線至 Roo Code Cloud", - "connect": "立即連線", - "cloudBenefitsTitle": "連線至 Roo Code Cloud", - "cloudBenefitWalkaway": "使用 Roomote Control 隨時隨地追蹤和控制任務", - "cloudBenefitSharing": "與他人分享任務", - "cloudBenefitHistory": "存取您的任務歷史", + "connect": "開始使用", + "cloudBenefitsTitle": "試用 Roo Code Cloud", + "cloudBenefitProvider": "存取與 Roo 完美配合的免費和付費模型", + "cloudBenefitCloudAgents": "將任務分配給自主雲端代理", + "cloudBenefitTriggers": "在 Github 上獲取程式碼審查,從 Slack 啟動任務等等", + "cloudBenefitWalkaway": "隨時隨地(包括您的手機)追蹤和控制任務", + "cloudBenefitHistory": "隨時隨地存取您的任務歷史記錄並與他人分享", "cloudBenefitMetrics": "獲得您的代幣消耗的整體視圖", "visitCloudWebsite": "造訪 Roo Code Cloud", "taskSync": "任務同步", From 64efbadc1dbf7d2b17ed673f03070b46539373cb Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Wed, 3 Dec 2025 12:18:26 +0000 Subject: [PATCH 3/6] Update webview-ui/src/components/cloud/CloudView.tsx Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- webview-ui/src/components/cloud/CloudView.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webview-ui/src/components/cloud/CloudView.tsx b/webview-ui/src/components/cloud/CloudView.tsx index 015aa57208c..e8ed9e163c2 100644 --- a/webview-ui/src/components/cloud/CloudView.tsx +++ b/webview-ui/src/components/cloud/CloudView.tsx @@ -265,7 +265,7 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, organization ) : ( <> -
+
{renderCloudBenefitsContent(t)}
{!authInProgress && ( From 91edbe93a2f2a694e542f35e48a2d323175e28b2 Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Wed, 3 Dec 2025 12:18:32 +0000 Subject: [PATCH 4/6] Update webview-ui/src/i18n/locales/ko/cloud.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- webview-ui/src/i18n/locales/ko/cloud.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webview-ui/src/i18n/locales/ko/cloud.json b/webview-ui/src/i18n/locales/ko/cloud.json index 97470a5c7a5..6aba5f58ba2 100644 --- a/webview-ui/src/i18n/locales/ko/cloud.json +++ b/webview-ui/src/i18n/locales/ko/cloud.json @@ -8,7 +8,7 @@ "cloudBenefitsTitle": "Roo Code Cloud 체험하기", "cloudBenefitProvider": "Roo와 잘 작동하는 무료 및 유료 모델에 액세스하세요", "cloudBenefitCloudAgents": "자율 클라우드 에이전트에게 작업 부여", - "cloudBenefitTriggers": "Github에서 코드 리뷰 받기, Slack에서 작업 시작 등", + "cloudBenefitTriggers": "GitHub에서 코드 리뷰 받기, Slack에서 작업 시작 등", "cloudBenefitWalkaway": "어디서나(휴대전화 포함) 작업을 팔로우하고 제어하세요", "cloudBenefitHistory": "어디서나 작업 기록에 액세스하고 다른 사람과 공유하세요", "cloudBenefitMetrics": "토큰 소비에 대한 전체적인 보기 얻기", From 3e80070925d2a2d8d970f6921f9dcd107ea26bb6 Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Wed, 3 Dec 2025 12:18:38 +0000 Subject: [PATCH 5/6] Update webview-ui/src/i18n/locales/zh-CN/cloud.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- webview-ui/src/i18n/locales/zh-CN/cloud.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webview-ui/src/i18n/locales/zh-CN/cloud.json b/webview-ui/src/i18n/locales/zh-CN/cloud.json index 510254132d2..29b4f98e4c6 100644 --- a/webview-ui/src/i18n/locales/zh-CN/cloud.json +++ b/webview-ui/src/i18n/locales/zh-CN/cloud.json @@ -8,7 +8,7 @@ "cloudBenefitsTitle": "试用 Roo Code Cloud", "cloudBenefitProvider": "访问与 Roo 完美配合的免费和付费模型", "cloudBenefitCloudAgents": "将任务分配给自主云代理", - "cloudBenefitTriggers": "在 Github 上获取代码审查,从 Slack 启动任务等等", + "cloudBenefitTriggers": "在 GitHub 上获取代码审查,从 Slack 启动任务等等", "cloudBenefitWalkaway": "随时随地(包括您的手机)跟踪和控制任务", "cloudBenefitHistory": "随时随地访问您的任务历史记录并与他人共享", "cloudBenefitMetrics": "获取您的令牌消耗的整体视图", From b5fbcfab447af96ec58b07654fe75f1db50fc0ff Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Wed, 3 Dec 2025 13:21:58 +0000 Subject: [PATCH 6/6] Test fixes --- .../__tests__/CloudUpsellDialog.spec.tsx | 37 +++++++++++-------- .../cloud/__tests__/CloudView.spec.tsx | 36 ++++++++++++------ 2 files changed, 47 insertions(+), 26 deletions(-) diff --git a/webview-ui/src/components/cloud/__tests__/CloudUpsellDialog.spec.tsx b/webview-ui/src/components/cloud/__tests__/CloudUpsellDialog.spec.tsx index 11c5c63e70a..9fd3fc045c8 100644 --- a/webview-ui/src/components/cloud/__tests__/CloudUpsellDialog.spec.tsx +++ b/webview-ui/src/components/cloud/__tests__/CloudUpsellDialog.spec.tsx @@ -7,12 +7,14 @@ vi.mock("react-i18next", () => ({ useTranslation: () => ({ t: (key: string) => { const translations: Record = { - "cloud:cloudBenefitsTitle": "Connect to Roo Cloud", - "cloud:cloudBenefitSharing": "Share tasks with your team", - "cloud:cloudBenefitHistory": "Access conversation history", - "cloud:cloudBenefitMetrics": "View usage metrics", - "cloud:cloudBenefitWalkaway": "Walk away with your code", - "cloud:connect": "Connect to Cloud", + "cloud:cloudBenefitsTitle": "Try Roo Code Cloud", + "cloud:cloudBenefitProvider": "Access free and paid models that work great with Roo", + "cloud:cloudBenefitCloudAgents": "Give tasks to autonomous Cloud agents", + "cloud:cloudBenefitTriggers": "Get code reviews on Github, start tasks from Slack and more", + "cloud:cloudBenefitWalkaway": "Follow and control tasks from anywhere (including your phone)", + "cloud:cloudBenefitHistory": "Access your task history from anywhere and share them with others", + "cloud:cloudBenefitMetrics": "Get a holistic view of your token consumption", + "cloud:connect": "Get started", } return translations[key] || key }, @@ -30,32 +32,37 @@ describe("CloudUpsellDialog", () => { it("renders dialog when open", () => { render() - expect(screen.getByText("Connect to Roo Cloud")).toBeInTheDocument() - expect(screen.getByText("Share tasks with your team")).toBeInTheDocument() - expect(screen.getByText("Access conversation history")).toBeInTheDocument() - expect(screen.getByText("View usage metrics")).toBeInTheDocument() - expect(screen.getByRole("button", { name: "Connect to Cloud" })).toBeInTheDocument() + expect(screen.getByText("Try Roo Code Cloud")).toBeInTheDocument() + expect(screen.getByText("Access free and paid models that work great with Roo")).toBeInTheDocument() + expect(screen.getByText("Give tasks to autonomous Cloud agents")).toBeInTheDocument() + expect(screen.getByText("Get code reviews on Github, start tasks from Slack and more")).toBeInTheDocument() + expect(screen.getByText("Follow and control tasks from anywhere (including your phone)")).toBeInTheDocument() + expect( + screen.getByText("Access your task history from anywhere and share them with others"), + ).toBeInTheDocument() + expect(screen.getByText("Get a holistic view of your token consumption")).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Get started" })).toBeInTheDocument() }) it("does not render dialog when closed", () => { render() - expect(screen.queryByText("Connect to Roo Cloud")).not.toBeInTheDocument() + expect(screen.queryByText("Try Roo Code Cloud")).not.toBeInTheDocument() }) it("calls onConnect when connect button is clicked", () => { render() - const connectButton = screen.getByRole("button", { name: "Connect to Cloud" }) + const connectButton = screen.getByRole("button", { name: "Get started" }) fireEvent.click(connectButton) expect(mockOnConnect).toHaveBeenCalledTimes(1) }) - it("renders all three benefits as list items", () => { + it("renders all benefits as list items", () => { render() const listItems = screen.getAllByRole("listitem") - expect(listItems).toHaveLength(4) + expect(listItems).toHaveLength(6) }) }) diff --git a/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx b/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx index 5643cafec22..87f5da9c651 100644 --- a/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx +++ b/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx @@ -10,12 +10,15 @@ vi.mock("@src/i18n/TranslationContext", () => ({ "cloud:title": "Cloud", "settings:common.done": "Done", "cloud:signIn": "Connect to Roo Code Cloud", - "cloud:cloudBenefitsTitle": "Connect to Roo Code Cloud", - "cloud:cloudBenefitSharing": "Share tasks with others", - "cloud:cloudBenefitHistory": "Access your task history", + "cloud:cloudBenefitsTitle": "Try Roo Code Cloud", + "cloud:cloudBenefitProvider": "Access free and paid models that work great with Roo", + "cloud:cloudBenefitCloudAgents": "Give tasks to autonomous Cloud agents", + "cloud:cloudBenefitTriggers": "Get code reviews on Github, start tasks from Slack and more", + "cloud:cloudBenefitWalkaway": "Follow and control tasks from anywhere (including your phone)", + "cloud:cloudBenefitHistory": "Access your task history from anywhere and share them with others", "cloud:cloudBenefitMetrics": "Get a holistic view of your token consumption", "cloud:logOut": "Log out", - "cloud:connect": "Connect Now", + "cloud:connect": "Get started", "cloud:visitCloudWebsite": "Visit Roo Code Cloud", "cloud:taskSync": "Task sync", "cloud:taskSyncDescription": "Sync your tasks for viewing and sharing on Roo Code Cloud", @@ -72,13 +75,18 @@ describe("CloudView", () => { render() // Check that the benefits section is displayed - expect(screen.getByRole("heading", { name: "Connect to Roo Code Cloud" })).toBeInTheDocument() - expect(screen.getByText("Share tasks with others")).toBeInTheDocument() - expect(screen.getByText("Access your task history")).toBeInTheDocument() + expect(screen.getByRole("heading", { name: "Try Roo Code Cloud" })).toBeInTheDocument() + expect(screen.getByText("Access free and paid models that work great with Roo")).toBeInTheDocument() + expect(screen.getByText("Give tasks to autonomous Cloud agents")).toBeInTheDocument() + expect(screen.getByText("Get code reviews on Github, start tasks from Slack and more")).toBeInTheDocument() + expect(screen.getByText("Follow and control tasks from anywhere (including your phone)")).toBeInTheDocument() + expect( + screen.getByText("Access your task history from anywhere and share them with others"), + ).toBeInTheDocument() expect(screen.getByText("Get a holistic view of your token consumption")).toBeInTheDocument() // Check that the connect button is also present - expect(screen.getByText("Connect Now")).toBeInTheDocument() + expect(screen.getByRole("button", { name: "Get started" })).toBeInTheDocument() }) it("should not display benefits when user is authenticated", () => { @@ -90,11 +98,17 @@ describe("CloudView", () => { render() // Check that the benefits section is NOT displayed + expect(screen.queryByText("Access free and paid models that work great with Roo")).not.toBeInTheDocument() + expect(screen.queryByText("Give tasks to autonomous Cloud agents")).not.toBeInTheDocument() + expect( + screen.queryByText("Get code reviews on Github, start tasks from Slack and more"), + ).not.toBeInTheDocument() + expect( + screen.queryByText("Follow and control tasks from anywhere (including your phone)"), + ).not.toBeInTheDocument() expect( - screen.queryByText("Follow and control tasks from anywhere with Roomote Control"), + screen.queryByText("Access your task history from anywhere and share them with others"), ).not.toBeInTheDocument() - expect(screen.queryByText("Share tasks with others")).not.toBeInTheDocument() - expect(screen.queryByText("Access your task history")).not.toBeInTheDocument() expect(screen.queryByText("Get a holistic view of your token consumption")).not.toBeInTheDocument() // Check that user info is displayed instead