diff --git a/messages/en.context.json b/messages/en.context.json index 7bcb10ee89..88bd92be9f 100644 --- a/messages/en.context.json +++ b/messages/en.context.json @@ -1515,6 +1515,7 @@ "frontend-onboarding-daily-setup-cli-no-copy-other-cli": "Used in Capgo web console areas: pages/admin/dashboard. Role: chart category label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-daily-setup-cli-outcomes-description": "Used in Capgo web console areas: pages/admin/dashboard. Role: helper or description text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-daily-setup-cli-outcomes-v2-v3": "Used in Capgo web console areas: pages/admin/dashboard. Role: chart title. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "frontend-onboarding-daily-setup-cli-outcomes-v2-v4": "Used in Capgo web console areas: pages/admin/dashboard. Role: chart title. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-daily-setup-cli-returning": "Used in Capgo web console areas: pages/admin/dashboard. Role: chart lifecycle label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-deduplicate-by-user": "Used in Capgo web console areas: components/admin. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-deduplicate-by-user-chart": "Used in Capgo web console areas: components/admin. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", @@ -1522,6 +1523,10 @@ "frontend-onboarding-funnel-v1-legacy": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-funnel-v2": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-funnel-v3": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "frontend-onboarding-funnel-v4": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "frontend-onboarding-graph-app-creation-failed": "Used in Capgo web console areas: pages/admin/dashboard. Role: analytics graph event label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "frontend-onboarding-graph-app-creation-started": "Used in Capgo web console areas: pages/admin/dashboard. Role: analytics graph event label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "frontend-onboarding-graph-app-creation-succeeded": "Used in Capgo web console areas: pages/admin/dashboard. Role: analytics graph event label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-graph-app-icon-picked": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-graph-app-icon-uploaded": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-graph-app-id-entered": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", @@ -1559,6 +1564,8 @@ "frontend-onboarding-graph-v2-description": "Used in Capgo web console areas: pages/admin/dashboard. Role: helper or description text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-graph-v3": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-graph-v3-description": "Used in Capgo web console areas: pages/admin/dashboard. Role: helper or description text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "frontend-onboarding-graph-v4": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "frontend-onboarding-graph-v4-description": "Used in Capgo web console areas: pages/admin/dashboard. Role: helper or description text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-largest-dropoff": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-load-error": "Used in Capgo web console areas: pages/admin/dashboard. Role: error message. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-median-time": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", @@ -1569,11 +1576,13 @@ "frontend-onboarding-setup-cli-only": "Used in Capgo web console areas: pages/admin/dashboard. Role: chart category label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-setup-cli-outcomes-description": "Used in Capgo web console areas: pages/admin/dashboard. Role: helper or description text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-setup-cli-outcomes-v2-v3": "Used in Capgo web console areas: pages/admin/dashboard. Role: chart title. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "frontend-onboarding-setup-cli-outcomes-v2-v4": "Used in Capgo web console areas: pages/admin/dashboard. Role: chart title. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-setup-no-cli": "Used in Capgo web console areas: pages/admin/dashboard. Role: chart category label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-transition": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-version-1": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-version-2": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "frontend-onboarding-version-3": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "frontend-onboarding-version-4": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "general": "Used in Capgo web console areas: constants. Role: short UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "general-information": "Used in Capgo web console areas: pages/settings/organization. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "generated-new-apikey": "Used in Capgo web console areas: pages. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", @@ -1679,7 +1688,6 @@ "key-upload": "Used in Capgo web console. Role: short UI label about \"key upload\". Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "key-write": "Used in Capgo web console. Role: short UI label about \"key write\". Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "language": "Used in Capgo web console areas: pages/settings/account. Role: short UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", - "learn-more": "Used in pre-organization app onboarding. Role: button opening additional App ID guidance.", "last": "Used in Capgo web console. Role: short UI label about \"last\". Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "last-1-hour": "Used in Capgo web console areas: services. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "last-12-hours": "Used in Capgo web console areas: services. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", @@ -2075,6 +2083,10 @@ "onboarding-source-manual": "Used in Capgo web console areas: pages/admin/dashboard. Role: short UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "onboarding-source-mcp": "Used in Capgo web console areas: pages/admin/dashboard. Role: short UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "onboarding-trend": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "onboarding-welcome-cta": "Used in Capgo web console areas: components/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "onboarding-welcome-description": "Used in Capgo web console areas: components/dashboard. Role: helper or description text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "onboarding-welcome-eyebrow": "Used in Capgo web console areas: components/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "onboarding-welcome-title": "Used in Capgo web console areas: components/dashboard. Role: section or dialog title. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "onboarding-wizard-abandoned": "Used in Capgo web console areas: pages/admin/dashboard. Role: short UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "onboarding-wizard-completed": "Used in Capgo web console areas: pages/admin/dashboard. Role: short UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "onboarding-wizard-dropoff": "Used in Capgo web console areas: pages/admin/dashboard. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", @@ -3072,5 +3084,26 @@ "your-api-key": "Used in Capgo web console areas: services. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "your-role-in-org": "Used in Capgo web console areas: pages. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", "your-usage": "Used in Capgo web console areas: pages/settings/organization. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", - "zip-bundle": "Used in Capgo web console areas: pages/app. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged." + "zip-bundle": "Used in Capgo web console areas: pages/app. Role: UI label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-icon-step-helper": "Used in app onboarding details wizard. Role: helper text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-icon-step-title": "Used in app onboarding details wizard. Role: step title. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-import-icon-only-button": "Used in app onboarding details wizard. Role: button label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-import-icon-only-helper": "Used in app onboarding details wizard. Role: helper text explaining that store re-import changes only the icon. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-import-icon-only-title": "Used in app onboarding details wizard. Role: section title. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-imported-icon-alt": "Used in app onboarding details wizard. Role: image alternative text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-imported-icon-helper": "Used in app onboarding details wizard. Role: helper text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-imported-icon-label": "Used in app onboarding details wizard. Role: status label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-imported-icon-selected": "Used in app onboarding details wizard. Role: selected button label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-name-step-helper": "Used in app onboarding details wizard. Role: helper text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-name-step-title": "Used in app onboarding details wizard. Role: step title. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-remove-icon": "Used in app onboarding details wizard. Role: button label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-skip-app-id": "Used in app onboarding details wizard. Role: button label that accepts Capgo's generated App ID. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-toast-store-icon-error": "Used in app onboarding details wizard. Role: error toast. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-use-different-icon": "Used in app onboarding details wizard. Role: section label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-use-imported-icon": "Used in app onboarding details wizard. Role: button label. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-app-id-generated-helper": "Used in app onboarding details wizard. Role: helper text. Preserve the {appId} placeholder. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-app-id-learn-more": "Used in app onboarding details wizard. Role: button opening guidance about Capgo App IDs. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-app-id-step-helper": "Used in app onboarding details wizard. Role: helper text. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-app-id-step-title": "Used in app onboarding details wizard. Role: step title. Translate for UI; keep Capgo product names, code, and placeholders unchanged.", + "app-onboarding-finish-details": "Used in app onboarding details wizard. Role: final creation button label. Translate for UI; keep Capgo product names, code, and placeholders unchanged." } diff --git a/messages/en.json b/messages/en.json index f511143fc7..14375a1d4a 100644 --- a/messages/en.json +++ b/messages/en.json @@ -449,10 +449,19 @@ "app-onboarding-exploring-subtitle": "Setup isn't finished yet. You can keep exploring or continue onboarding.", "app-onboarding-exploring-title": "Exploring the Capgo dashboard", "app-onboarding-icon-choose-file": "Choose file", - "app-onboarding-icon-help": "The icon is optional. If you import from a store listing, Capgo will try to reuse the store icon automatically.", + "app-onboarding-icon-help": "Upload a square PNG, JPEG, or WebP image. The icon is optional.", "app-onboarding-icon-label": "App icon", "app-onboarding-icon-no-file-selected": "No file selected", "app-onboarding-icon-preview-alt": "App icon preview", + "app-onboarding-icon-step-helper": "Keep the imported icon, upload something else, or continue without one.", + "app-onboarding-icon-step-title": "Choose an icon", + "app-onboarding-import-icon-only-button": "Import icon", + "app-onboarding-import-icon-only-helper": "Only the icon will change. Your app name and App ID stay exactly as they are.", + "app-onboarding-import-icon-only-title": "Import an icon from another store listing", + "app-onboarding-imported-icon-alt": "Imported store icon", + "app-onboarding-imported-icon-helper": "We found this icon in the store listing you imported.", + "app-onboarding-imported-icon-label": "Imported from store", + "app-onboarding-imported-icon-selected": "Using this icon", "app-onboarding-install-badge": "CLI onboarding", "app-onboarding-explore-dashboard": "Explore Capgo dashboard", "app-onboarding-explore-dashboard-confirm-description": "You can explore the dashboard now. Your app setup will remain available when you return.", @@ -482,6 +491,8 @@ "app-onboarding-mode-import-helper": "Use an App Store or Google Play link to prefill details.", "app-onboarding-mode-manual": "Set up manually", "app-onboarding-mode-manual-helper": "Type the app name and bundle or package ID yourself.", + "app-onboarding-name-step-helper": "Use the name people will recognize in Capgo. You can change it later.", + "app-onboarding-name-step-title": "What is your app called?", "app-onboarding-name-placeholder": "Capgo demo app", "app-onboarding-next-cleanup": "When the CLI marks onboarding as completed, the temporary onboarding data can be cleared automatically before the first real upload continues.", "app-onboarding-next-existing": "The CLI should attach Capgo to your existing project without scaffolding a new Capacitor app.", @@ -493,6 +504,7 @@ "app-onboarding-preview-bullet-two": "Demo data stays disposable. When the CLI completes, pending onboarding data can be cleared automatically.", "app-onboarding-preview-label": "Preview", "app-onboarding-preview-placeholder": "Your app", + "app-onboarding-remove-icon": "Remove icon", "app-onboarding-progress-label": "Onboarding progress", "app-onboarding-progress-count": "Step {current} of {total}", "app-onboarding-start-question": "How do you want to start?", @@ -505,6 +517,7 @@ "app-onboarding-store-link-label": "App Store or Google Play link", "app-onboarding-store-link-placeholder": "https://apps.apple.com/... or https://play.google.com/store/apps/details?id=com.example.app", "app-onboarding-store-screenshot-alt": "Store screenshot preview", + "app-onboarding-skip-app-id": "Skip", "app-onboarding-subtitle": "The app is created immediately in Capgo. From there you can either connect your real project in the CLI or explore the dashboard with temporary demo data.", "app-onboarding-summary-method": "Setup method", "app-onboarding-summary-source": "Starting point", @@ -522,6 +535,14 @@ "app-onboarding-toast-no-organization": "No organization selected.", "app-onboarding-toast-resume-not-found": "Unable to find the onboarding app.", "app-onboarding-toast-store-metadata-error": "Unable to fetch metadata from that store link.", + "app-onboarding-toast-store-icon-error": "Unable to find an app icon at this store link.", + "app-onboarding-use-different-icon": "Use something else", + "app-onboarding-use-imported-icon": "Use this icon", + "app-onboarding-app-id-generated-helper": "Leave this empty and Capgo will use {appId}.", + "app-onboarding-app-id-learn-more": "Learn more about Capgo App ID", + "app-onboarding-app-id-step-helper": "Use your bundle or package ID, import it from a store listing, or skip this step.", + "app-onboarding-app-id-step-title": "Set your App ID", + "app-onboarding-finish-details": "Create app", "app-onboarding-v2-ai-help-status": "Existing mobile project; store publication is optional", "app-onboarding-v2-appid-dialog-description": "Capgo uses this App ID to identify the app in the dashboard and CLI. It is often the same as your native project ID, but it does not have to be. Changing it here does not change your iOS Bundle Identifier, Android Application ID, Capacitor appId, or store listing.", "app-onboarding-v2-appid-dialog-title": "How does the Capgo App ID work?", @@ -1539,7 +1560,6 @@ "key-upload": "Upload", "key-write": "Write", "language": "Language", - "learn-more": "Learn more", "last": "Last", "last-12-months": "Last 12 Months", "last-30-minutes": "Last 30 minutes", @@ -1892,6 +1912,10 @@ "onboarding-resume-restart": "Restart", "onboarding-resume-title": "Continue where you left off?", "onboarding-trend": "Onboarding Trend", + "onboarding-welcome-cta": "Set up my first update", + "onboarding-welcome-description": "You’re a few steps away from the magic of over-the-air updates — and so much more.", + "onboarding-welcome-eyebrow": "Good to have you here", + "onboarding-welcome-title": "Welcome to Capgo", "onboarding-wizard-abandoned": "Abandoned", "onboarding-wizard-completed": "Completed", "onboarding-wizard-dropoff": "Onboarding wizard drop-off", @@ -2993,6 +3017,7 @@ "frontend-onboarding-version-1": "Onboarding v1", "frontend-onboarding-version-2": "Onboarding v2", "frontend-onboarding-version-3": "Onboarding v3", + "frontend-onboarding-version-4": "Onboarding v4", "frontend-onboarding-attempts": "Onboarding attempts", "frontend-onboarding-attempts-subtitle": "Unique onboarding attempts", "frontend-onboarding-completed": "Onboarding completed", @@ -3006,17 +3031,20 @@ "frontend-onboarding-deduplicate-by-user-chart": "De-duplicate by user: {chart}", "frontend-onboarding-daily-conversion": "Conversion", "frontend-onboarding-daily-conversion-attempts": "attempts", - "frontend-onboarding-daily-details-to-organization": "Daily App details → Organization conversion (v3)", - "frontend-onboarding-daily-intent-to-details": "Daily Intent → App details conversion (v1, v2, and v3)", - "frontend-onboarding-daily-organization-to-setup": "Daily Organization → Setup reached conversion (v3)", + "frontend-onboarding-daily-details-to-organization": "Daily App details → Organization conversion (v4)", + "frontend-onboarding-daily-intent-to-details": "Daily Intent → App details conversion (v1–v4)", + "frontend-onboarding-daily-organization-to-setup": "Daily Organization → Setup reached conversion (v4)", "frontend-onboarding-funnel-v2": "Onboarding funnel (v2)", "frontend-onboarding-funnel-v3": "Frontend onboarding funnel (v3)", + "frontend-onboarding-funnel-v4": "Frontend onboarding funnel (v4)", "frontend-onboarding-funnel-v1-legacy": "Onboarding funnel (v1, legacy)", "frontend-onboarding-funnel-description": "Progress through the new-user app-creation wizard", "frontend-onboarding-graph-v2": "Onboarding graph (v2)", "frontend-onboarding-graph-v2-description": "Explore behavior inside each onboarding stage", "frontend-onboarding-graph-v3": "Frontend onboarding graph (v3)", "frontend-onboarding-graph-v3-description": "Explore behavior inside each onboarding stage", + "frontend-onboarding-graph-v4": "Frontend onboarding graph (v4)", + "frontend-onboarding-graph-v4-description": "Explore behavior inside each onboarding stage", "frontend-onboarding-graph-stage-intent": "Intent", "frontend-onboarding-graph-stage-app-details": "App details", "frontend-onboarding-graph-stage-organization-details": "Organization details", @@ -3044,6 +3072,9 @@ "frontend-onboarding-graph-organization-invite-opened": "Invitation opened", "frontend-onboarding-graph-organization-invite-succeeded": "Invitation succeeded", "frontend-onboarding-graph-organization-invite-continued": "Invitation step continued", + "frontend-onboarding-graph-app-creation-started": "App creation started", + "frontend-onboarding-graph-app-creation-succeeded": "App creation succeeded", + "frontend-onboarding-graph-app-creation-failed": "App creation failed", "frontend-onboarding-graph-technical-invite-opened": "Technical invite opened", "frontend-onboarding-graph-technical-invite-succeeded": "Technical invite succeeded", "frontend-onboarding-graph-percent-of-level": "{percent}% of {level}", @@ -3051,11 +3082,13 @@ "frontend-onboarding-graph-percent-of-previous": "{percent}% of previous", "frontend-onboarding-graph-percent-of-parent-stage": "{percent}% of parent stage", "frontend-onboarding-setup-cli-outcomes-v2-v3": "Setup → CLI outcomes (v2 and v3)", + "frontend-onboarding-setup-cli-outcomes-v2-v4": "Setup → CLI outcomes (v2–v4)", "frontend-onboarding-setup-cli-outcomes-description": "Unique people who reached setup, grouped by their CLI and copied AI instruction activity within 24 hours", "frontend-onboarding-setup-cli-only": "Started CLI", "frontend-onboarding-setup-cli-and-ai": "Started CLI + AI instructions", "frontend-onboarding-setup-no-cli": "Didn't start CLI", "frontend-onboarding-daily-setup-cli-outcomes-v2-v3": "Daily Setup → CLI outcomes (v2 and v3)", + "frontend-onboarding-daily-setup-cli-outcomes-v2-v4": "Daily Setup → CLI outcomes (v2–v4)", "frontend-onboarding-daily-setup-cli-outcomes-description": "Each person is counted once per UTC day. Left: first-time Setup views; right: returning views. Actions are attributed for up to 24 hours.", "frontend-onboarding-daily-setup-cli-first-time": "First-time", "frontend-onboarding-daily-setup-cli-returning": "Returning", diff --git a/playwright/e2e/register.spec.ts b/playwright/e2e/register.spec.ts index b8ccad89b9..acf4dc47d6 100644 --- a/playwright/e2e/register.spec.ts +++ b/playwright/e2e/register.spec.ts @@ -5,6 +5,12 @@ async function loginToOnboarding(page: Page, email: string, password: string) { await page.login(email, password, /\/onboarding\/app/) } +async function continuePastWelcome(page: Page) { + const continueButton = page.locator('[data-test="onboarding-welcome-continue"]') + await expect(continueButton).toBeVisible() + await continueButton.click() +} + async function expectProtectedRouteRedirect(page: Page, targetPath: string, expectedUrl: RegExp, expectedSelector: string) { const redirectedPage = await page.context().newPage() @@ -18,6 +24,27 @@ async function expectProtectedRouteRedirect(page: Page, targetPath: string, expe } } +async function continueFromAppNameToIcon(page: Page) { + await page.click('[data-test="app-onboarding-continue"]') + await expect(page.locator('#app-onboarding-app-id')).toBeVisible() + await page.click('[data-test="app-onboarding-skip-app-id"]') + await expect(page.locator('[data-test="app-onboarding-toggle-icon-store-import"]')).toBeVisible() +} + +async function continueFromAppNameToOrganization(page: Page) { + await continueFromAppNameToIcon(page) + await page.click('[data-test="app-onboarding-continue"]') +} + +async function returnFromOrganizationToAppName(page: Page) { + await page.getByRole('button', { name: 'Back', exact: true }).click() + await expect(page.locator('[data-test="app-onboarding-toggle-icon-store-import"]')).toBeVisible() + await page.getByRole('button', { name: 'Back', exact: true }).click() + await expect(page.locator('#app-onboarding-app-id')).toBeVisible() + await page.getByRole('button', { name: 'Back', exact: true }).click() + await expect(page.locator('[data-test="app-onboarding-name"]')).toBeVisible() +} + test.describe('Registration', () => { test.beforeEach(async ({ page }) => { await page.goto('/register/') @@ -39,28 +66,29 @@ test.describe('Registration', () => { await page.click('[data-test="submit"]') await page.waitForURL(/\/onboarding\/app/) + await continuePastWelcome(page) await page.click('[data-test="onboarding-intent-ota"]') await page.click('[data-test="app-onboarding-continue-intent"]') await expect(page.locator('[data-test="app-onboarding-existing-yes"]')).toHaveCount(0) await expect(page.locator('[data-test="app-onboarding-existing-no"]')).toHaveCount(0) await expect(page.locator('[data-test="app-onboarding-name"]')).toBeVisible() - await expect(page.locator('#app-onboarding-app-id')).toBeVisible() + await expect(page.locator('#app-onboarding-app-id')).toHaveCount(0) await page.fill('[data-test="app-onboarding-name"]', appName) - await page.click('[data-test="app-onboarding-continue"]') + await continueFromAppNameToOrganization(page) await expectProtectedRouteRedirect(page, '/apps', /\/onboarding\/app/, '[data-test="onboarding-logout"]') await expect(page.locator('[data-test="onboarding-org-name"]')).toHaveValue(appName) await page.locator('[data-test="onboarding-estimated-users-option"]').nth(1).click() - await page.getByRole('button', { name: 'Back', exact: true }).click() + await returnFromOrganizationToAppName(page) await page.fill('[data-test="app-onboarding-name"]', editedAppName) - await page.click('[data-test="app-onboarding-continue"]') + await continueFromAppNameToOrganization(page) await expect(page.locator('[data-test="onboarding-org-name"]')).toHaveValue(editedAppName) await page.fill('[data-test="onboarding-org-name"]', organizationName) - await page.getByRole('button', { name: 'Back', exact: true }).click() + await returnFromOrganizationToAppName(page) await page.fill('[data-test="app-onboarding-name"]', finalAppName) - await page.click('[data-test="app-onboarding-continue"]') + await continueFromAppNameToOrganization(page) await expect(page.locator('[data-test="onboarding-org-name"]')).toHaveValue(organizationName) await expect(page.locator('[data-test="onboarding-create-org"]')).toBeEnabled() await page.click('[data-test="onboarding-create-org"]') @@ -88,9 +116,11 @@ test.describe('Registration', () => { await page.click('[data-test="submit"]') await page.waitForURL(/\/onboarding\/app/) + await continuePastWelcome(page) await page.click('[data-test="onboarding-intent-ota"]') await page.click('[data-test="app-onboarding-continue-intent"]') await page.fill('[data-test="app-onboarding-name"]', appName) + await continueFromAppNameToIcon(page) await Promise.all([ page.waitForResponse((response) => { if (!response.url().includes('/rest/v1/users') || response.request().method() !== 'PATCH' || !response.ok()) @@ -114,6 +144,7 @@ test.describe('Registration', () => { await loginToOnboarding(page, email, password) await expect(page.locator('[data-test="onboarding-resume-restart"]')).toBeVisible() await page.locator('[data-test="onboarding-resume-restart"]').click() + await continuePastWelcome(page) await expect(page.locator('[data-test="onboarding-intent-ota"]')).toBeVisible() await expect(page.locator('[data-test="onboarding-org-name"]')).toHaveCount(0) }) diff --git a/src/components.d.ts b/src/components.d.ts index f9e522c966..cd67ec13da 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -29,7 +29,7 @@ declare module 'vue' { AppOnboardingCliSteps: typeof import('./components/dashboard/AppOnboardingCliSteps.vue')['default'] AppOnboardingFlow: typeof import('./components/dashboard/AppOnboardingFlow.vue')['default'] AppOnboardingIconInput: typeof import('./components/dashboard/AppOnboardingIconInput.vue')['default'] - AppOnboardingNextStep: typeof import('./components/dashboard/AppOnboardingNextStep.vue')['default'] + AppOnboardingWelcome: typeof import('./components/dashboard/AppOnboardingWelcome.vue')['default'] AppPageFrame: typeof import('./components/dashboard/AppPageFrame.vue')['default'] AppPageNotFound: typeof import('./components/dashboard/AppPageNotFound.vue')['default'] AppSetting: typeof import('./components/dashboard/AppSetting.vue')['default'] @@ -94,6 +94,7 @@ declare module 'vue' { Navbar: typeof import('./components/Navbar.vue')['default'] OnboardingExploreBanner: typeof import('./components/dashboard/OnboardingExploreBanner.vue')['default'] OnboardingSupportUsernames: typeof import('./components/dashboard/OnboardingSupportUsernames.vue')['default'] + OrganizationOnboardingInvite: typeof import('./components/dashboard/OrganizationOnboardingInvite.vue')['default'] OrgEmailNotificationsPanel: typeof import('./components/dashboard/OrgEmailNotificationsPanel.vue')['default'] OrgNotificationStatsPanel: typeof import('./components/dashboard/OrgNotificationStatsPanel.vue')['default'] PageLoader: typeof import('./components/PageLoader.vue')['default'] @@ -122,6 +123,7 @@ declare module 'vue' { TableLog: typeof import('./components/TableLog.vue')['default'] Tabs: typeof import('./components/Tabs.vue')['default'] TabSidebar: typeof import('./components/TabSidebar.vue')['default'] + TechnicalTeammateInviteCard: typeof import('./components/dashboard/TechnicalTeammateInviteCard.vue')['default'] Toast: typeof import('./components/Toast.vue')['default'] Toggle: typeof import('./components/Toggle.vue')['default'] TrialBanner: typeof import('./components/dashboard/TrialBanner.vue')['default'] diff --git a/src/components/dashboard/AppOnboardingFlow.vue b/src/components/dashboard/AppOnboardingFlow.vue index 0b289c84e2..1f94bcbc47 100644 --- a/src/components/dashboard/AppOnboardingFlow.vue +++ b/src/components/dashboard/AppOnboardingFlow.vue @@ -1,6 +1,7 @@