From fe5697dee110a1867bfef8036f6ccee04d024455 Mon Sep 17 00:00:00 2001 From: Guillaume Jacquart Date: Fri, 21 Nov 2025 15:11:42 +0100 Subject: [PATCH] feat(editor): Add dismissable callout for scaling mode enabled customers (#21897) --- .../frontend/@n8n/i18n/src/locales/en.json | 3 + .../insights/components/InsightsDashboard.vue | 2 +- .../components/InsightsSummary.test.ts | 8 + .../insights/components/InsightsSummary.vue | 221 ++++++++---- .../InsightsSummary.test.ts.snap | 324 +++++++++--------- 5 files changed, 332 insertions(+), 226 deletions(-) diff --git a/packages/frontend/@n8n/i18n/src/locales/en.json b/packages/frontend/@n8n/i18n/src/locales/en.json index 05e9ca3aea9..80ca86afd8c 100644 --- a/packages/frontend/@n8n/i18n/src/locales/en.json +++ b/packages/frontend/@n8n/i18n/src/locales/en.json @@ -3929,6 +3929,9 @@ "insights.dashboard.paywall.title": "Upgrade to access more detailed insights", "insights.dashboard.paywall.description": "Gain access to more granular, per-workflow insights and visual breakdown of production executions over different time periods.", "insights.banner.title.timeSaved.tooltip": "Total time saved calculated from your estimated time savings per execution across all workflows", + "insights.banner.queueMode.warning": "We identified and fixed an issue where insights execution counts were duplicated for queue mode users.", + "insights.banner.queueMode.warning.link.text": "Learn more", + "insights.banner.queueMode.warning.link.url": "https://community.n8n.io/t/insights-reporting-bug-for-queue-mode-users-on-v1-100-0", "insights.banner.failureRate.deviation.tooltip": "Percentage point change from previous period", "insights.chart.failed": "Failed", "insights.chart.succeeded": "Successful", diff --git a/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsDashboard.vue b/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsDashboard.vue index a77091bd58e..2f314c8d6f1 100644 --- a/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsDashboard.vue +++ b/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsDashboard.vue @@ -308,7 +308,7 @@ const projects = computed(() => } .insightsBanner { - padding-bottom: 0; + margin-bottom: 0; ul { border-bottom-left-radius: 0; diff --git a/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsSummary.test.ts b/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsSummary.test.ts index de75850667e..3ad8f4acde3 100644 --- a/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsSummary.test.ts +++ b/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsSummary.test.ts @@ -2,6 +2,8 @@ import { reactive } from 'vue'; import InsightsSummary from '@/features/execution/insights/components/InsightsSummary.vue'; import { createComponentRenderer } from '@/__tests__/render'; import type { InsightsSummaryDisplay } from '@/features/execution/insights/insights.types'; +import { createTestingPinia } from '@pinia/testing'; +import { defaultSettings } from '@/__tests__/defaults'; vi.mock('vue-router', () => ({ useRouter: () => ({}), @@ -23,6 +25,12 @@ const renderComponent = createComponentRenderer(InsightsSummary, { }); describe('InsightsSummary', () => { + beforeEach(() => { + createTestingPinia({ + initialState: { settings: { settings: defaultSettings } }, + }); + }); + it('should render without error', () => { expect(() => renderComponent({ diff --git a/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsSummary.vue b/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsSummary.vue index 8205e1fbd70..cf56cab4036 100644 --- a/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsSummary.vue +++ b/packages/frontend/editor-ui/src/features/execution/insights/components/InsightsSummary.vue @@ -1,5 +1,6 @@