Skip to content

Commit 617de8b

Browse files
fix(adoption-insights): Adoption Insights - 1 active users per day were conducted during this period. (#1365)
* fix(adoption-insights): improve analytics text clarity by replacing 'were conducted' with professional terminology * fix(adoption-insights): enhance grouping text support for all time periods - Added getGroupingLabel utility function to map grouping values to proper labels - Updated tests to verify all grouping types work correctly
1 parent 6549289 commit 617de8b

File tree

13 files changed

+186
-43
lines changed

13 files changed

+186
-43
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@red-hat-developer-hub/backstage-plugin-adoption-insights': patch
3+
---
4+
5+
- Fixed confusing text in ActiveUsers and Searches components by replacing "were conducted" with professional analytics terminology
6+
- Updated text to use "Average peak active user count" and "Average search count" for better clarity
7+
- Enhanced time period text to properly handle all grouping types (hourly, daily, weekly, monthly) instead of only supporting hour and day

workspaces/adoption-insights/packages/app/e2e-tests/insights.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ test('Active users panel shows 1 visitor', async () => {
6969
await expect(panel).toMatchAriaSnapshot(`
7070
- heading "Active users" [level=5]
7171
- button "Export CSV"
72-
- paragraph: An average of 1 active users per hour were active during this period.
72+
- paragraph: Average peak active user count was 1 per hour for this period.
7373
`);
7474
});
7575

@@ -186,7 +186,7 @@ test.describe(() => {
186186
await panel.scrollIntoViewIfNeeded();
187187
await expect(panel.locator('.recharts-surface')).toBeVisible();
188188
await expect(panel).toContainText(
189-
'An average of 1 searches per hour were conducted during this period.',
189+
'Average search count was 1 per hour for this period.',
190190
);
191191
});
192192

workspaces/adoption-insights/plugins/adoption-insights/report.api.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ export const adoptionInsightsTranslationRef: TranslationRef<
5656
readonly 'activeUsers.legend.newUsers': string;
5757
readonly 'activeUsers.legend.returningUsers': string;
5858
readonly 'activeUsers.title': string;
59+
readonly 'activeUsers.month': string;
60+
readonly 'activeUsers.week': string;
5961
readonly 'activeUsers.hour': string;
6062
readonly 'activeUsers.day': string;
6163
readonly 'activeUsers.averagePrefix': string;
@@ -71,6 +73,8 @@ export const adoptionInsightsTranslationRef: TranslationRef<
7173
readonly 'techDocs.topNTitle': string;
7274
readonly 'techDocs.allTitle': string;
7375
readonly 'searches.title': string;
76+
readonly 'searches.month': string;
77+
readonly 'searches.week': string;
7478
readonly 'searches.hour': string;
7579
readonly 'searches.day': string;
7680
readonly 'searches.averagePrefix': string;

workspaces/adoption-insights/plugins/adoption-insights/src/components/ActiveUsers/ActiveUsers.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
getXAxisformat,
3737
getXAxisTickValues,
3838
formatNumber,
39+
getGroupingLabel,
3940
} from '../../utils/utils';
4041
import { useActiveUsers } from '../../hooks/useActiveUsers';
4142
import { Typography } from '@material-ui/core';
@@ -99,13 +100,10 @@ const ActiveUsers = () => {
99100
count: Math.round(
100101
getAverage(data, 'total_users'),
101102
).toLocaleString('en-US'),
102-
period:
103-
grouping === 'hourly'
104-
? t('activeUsers.hour')
105-
: t('activeUsers.day'),
103+
period: getGroupingLabel(grouping, t, 'activeUsers'),
106104
}}
107105
/>
108-
</b>{' '}
106+
</b>
109107
{t('activeUsers.averageSuffix')}
110108
</Typography>
111109
<Box sx={{ height: 310, mt: 4, mb: 4, ml: 0, mr: 0 }}>

workspaces/adoption-insights/plugins/adoption-insights/src/components/Searches/Searches.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
getXAxisformat,
3737
getXAxisTickValues,
3838
formatNumber,
39+
getGroupingLabel,
3940
} from '../../utils/utils';
4041
import CustomCursor from '../Common/CustomCursor';
4142
import EmptyChartState from '../Common/EmptyChartState';
@@ -102,13 +103,10 @@ const Searches = () => {
102103
count: Math.round(getAverage(data, 'count')).toLocaleString(
103104
'en-US',
104105
),
105-
period:
106-
grouping === 'hourly'
107-
? t('searches.hour')
108-
: t('searches.day'),
106+
period: getGroupingLabel(grouping, t, 'searches'),
109107
}}
110108
/>
111-
</b>{' '}
109+
</b>
112110
{t('searches.averageSuffix')}
113111
</Typography>
114112
<Box sx={{ height: 310, mt: 4, mb: 4, ml: 0, mr: 0 }}>

workspaces/adoption-insights/plugins/adoption-insights/src/components/Searches/__tests__/Searches.test.tsx

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,35 @@ describe('Searches Component', () => {
8080

8181
render(<Searches />);
8282
expect(screen.getByText(/300 searches/i)).toBeInTheDocument();
83-
expect(screen.getByText(/150 searches per day/i)).toBeInTheDocument();
83+
expect(screen.getByText(/Average search count was/i)).toBeInTheDocument();
84+
expect(screen.getByText(/150 per day/i)).toBeInTheDocument();
85+
});
86+
87+
it('should display correct time unit for different groupings', () => {
88+
const testCases = [
89+
{ grouping: 'hourly', expectedText: '150 per hour' },
90+
{ grouping: 'daily', expectedText: '150 per day' },
91+
{ grouping: 'weekly', expectedText: '150 per week' },
92+
{ grouping: 'monthly', expectedText: '150 per month' },
93+
];
94+
95+
testCases.forEach(({ grouping, expectedText }) => {
96+
(useSearches as jest.Mock).mockReturnValue({
97+
searches: {
98+
data: [
99+
{ date: '2025-03-01', count: 100 },
100+
{ date: '2025-03-02', count: 200 },
101+
],
102+
grouping,
103+
},
104+
loading: false,
105+
});
106+
107+
const { unmount } = render(<Searches />);
108+
expect(
109+
screen.getByText(new RegExp(expectedText, 'i')),
110+
).toBeInTheDocument();
111+
unmount();
112+
});
84113
});
85114
});

workspaces/adoption-insights/plugins/adoption-insights/src/translations/de.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,14 @@ const adoptionInsightsTranslationDe = createTranslationMessages({
3636
'header.dateRange.ok': 'OK',
3737
'header.dateRange.defaultLabel': 'Letzte 28 Tage',
3838
'activeUsers.title': 'Aktive Benutzer',
39-
'activeUsers.averagePrefix': 'Im Durchschnitt',
40-
'activeUsers.averageText': '{{count}} aktive Benutzer pro {{period}}',
41-
'activeUsers.averageSuffix': 'waren in diesem Zeitraum aktiv.',
39+
'activeUsers.averagePrefix':
40+
'Durchschnittliche Spitzenanzahl aktiver Benutzer war',
41+
'activeUsers.averageText': '{{count}} pro {{period}}',
42+
'activeUsers.averageSuffix': ' für diesen Zeitraum.',
4243
'activeUsers.hour': 'Stunde',
4344
'activeUsers.day': 'Tag',
45+
'activeUsers.week': 'Woche',
46+
'activeUsers.month': 'Monat',
4447
'activeUsers.legend.newUsers': 'Neue Benutzer',
4548
'activeUsers.legend.returningUsers': 'Wiederkehrende Benutzer',
4649
'templates.title': 'Top-Vorlagen',
@@ -57,11 +60,13 @@ const adoptionInsightsTranslationDe = createTranslationMessages({
5760
'techDocs.allTitle': 'Alle TechDocs',
5861
'searches.title': 'Top-Suchen',
5962
'searches.totalCount': '{{count}} Suchen',
60-
'searches.averagePrefix': 'Im Durchschnitt',
61-
'searches.averageText': '{{count}} Suchen pro {{period}}',
62-
'searches.averageSuffix': 'wurden in diesem Zeitraum durchgeführt.',
63+
'searches.averagePrefix': 'Durchschnittliche Suchanzahl war',
64+
'searches.averageText': '{{count}} pro {{period}}',
65+
'searches.averageSuffix': ' für diesen Zeitraum.',
6366
'searches.hour': 'Stunde',
6467
'searches.day': 'Tag',
68+
'searches.week': 'Woche',
69+
'searches.month': 'Monat',
6570
'users.title': 'Gesamtzahl der Benutzer',
6671
'users.haveLoggedIn': 'haben sich angemeldet',
6772
'users.loggedInUsers': 'Angemeldete Benutzer',

workspaces/adoption-insights/plugins/adoption-insights/src/translations/es.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ const adoptionInsightsTranslationEs = createTranslationMessages({
3636
'header.dateRange.ok': 'OK',
3737
'header.dateRange.defaultLabel': 'Últimos 28 días',
3838
'activeUsers.title': 'Usuarios Activos',
39-
'activeUsers.averagePrefix': 'Un promedio de',
40-
'activeUsers.averageText': '{{count}} usuarios activos por {{period}}',
41-
'activeUsers.averageSuffix': 'estuvieron activos durante este período.',
39+
'activeUsers.averagePrefix': 'El promedio de usuarios activos máximos fue',
40+
'activeUsers.averageText': '{{count}} por {{period}}',
41+
'activeUsers.averageSuffix': ' para este período.',
4242
'activeUsers.hour': 'hora',
4343
'activeUsers.day': 'día',
44+
'activeUsers.week': 'semana',
45+
'activeUsers.month': 'mes',
4446
'activeUsers.legend.newUsers': 'Nuevos usuarios',
4547
'activeUsers.legend.returningUsers': 'Usuarios recurrentes',
4648
'templates.title': 'Top plantillas',
@@ -57,11 +59,13 @@ const adoptionInsightsTranslationEs = createTranslationMessages({
5759
'techDocs.allTitle': 'Todos los TechDocs',
5860
'searches.title': 'Top búsquedas',
5961
'searches.totalCount': '{{count}} búsquedas',
60-
'searches.averagePrefix': 'Un promedio de',
61-
'searches.averageText': '{{count}} búsquedas por {{period}}',
62-
'searches.averageSuffix': 'se realizaron durante este período.',
62+
'searches.averagePrefix': 'El promedio de búsquedas fue',
63+
'searches.averageText': '{{count}} por {{period}}',
64+
'searches.averageSuffix': ' para este período.',
6365
'searches.hour': 'hora',
6466
'searches.day': 'día',
67+
'searches.week': 'semana',
68+
'searches.month': 'mes',
6569
'users.title': 'Número total de usuarios',
6670
'users.haveLoggedIn': 'han iniciado sesión',
6771
'users.loggedInUsers': 'Usuarios conectados',

workspaces/adoption-insights/plugins/adoption-insights/src/translations/fr.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,14 @@ const adoptionInsightsTranslationFr = createTranslationMessages({
3636
'header.dateRange.ok': 'OK',
3737
'header.dateRange.defaultLabel': 'Les 28 derniers jours',
3838
'activeUsers.title': 'Utilisateurs Actifs',
39-
'activeUsers.averagePrefix': 'En moyenne',
40-
'activeUsers.averageText': '{{count}} utilisateurs actifs par {{period}}',
41-
'activeUsers.averageSuffix': 'étaient actifs au cours de cette période.',
39+
'activeUsers.averagePrefix':
40+
"Le nombre moyen d'utilisateurs actifs en pointe était",
41+
'activeUsers.averageText': '{{count}} par {{period}}',
42+
'activeUsers.averageSuffix': ' pour cette période.',
4243
'activeUsers.hour': 'heure',
4344
'activeUsers.day': 'jour',
45+
'activeUsers.week': 'semaine',
46+
'activeUsers.month': 'mois',
4447
'activeUsers.legend.newUsers': 'Nouveaux utilisateurs',
4548
'activeUsers.legend.returningUsers': 'Utilisateurs récurrents',
4649
'templates.title': 'Top modèles',
@@ -57,11 +60,13 @@ const adoptionInsightsTranslationFr = createTranslationMessages({
5760
'techDocs.allTitle': 'Tous les TechDocs',
5861
'searches.title': 'Top recherches',
5962
'searches.totalCount': '{{count}} recherches',
60-
'searches.averagePrefix': 'En moyenne',
61-
'searches.averageText': '{{count}} recherches par {{period}}',
62-
'searches.averageSuffix': 'ont été effectuées durant cette période.',
63+
'searches.averagePrefix': 'Le nombre moyen de recherches était',
64+
'searches.averageText': '{{count}} par {{period}}',
65+
'searches.averageSuffix': ' pour cette période.',
6366
'searches.hour': 'heure',
6467
'searches.day': 'jour',
68+
'searches.week': 'semaine',
69+
'searches.month': 'mois',
6570
'users.title': "Nombre total d'utilisateurs",
6671
'users.haveLoggedIn': 'se sont connectés',
6772
'users.loggedInUsers': 'Utilisateurs connectés',

workspaces/adoption-insights/plugins/adoption-insights/src/translations/it.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,14 @@ const adoptionInsightsTranslationIt = createTranslationMessages({
3636
'header.dateRange.ok': 'OK',
3737
'header.dateRange.defaultLabel': 'Ultimi 28 giorni',
3838
'activeUsers.title': 'Utenti Attivi',
39-
'activeUsers.averagePrefix': 'In media',
40-
'activeUsers.averageText': '{{count}} utenti attivi per {{period}}',
41-
'activeUsers.averageSuffix': 'sono stati attivi durante questo periodo.',
39+
'activeUsers.averagePrefix':
40+
'Il numero medio di utenti attivi di picco era',
41+
'activeUsers.averageText': '{{count}} per {{period}}',
42+
'activeUsers.averageSuffix': ' per questo periodo.',
4243
'activeUsers.hour': 'ora',
4344
'activeUsers.day': 'giorno',
45+
'activeUsers.week': 'settimana',
46+
'activeUsers.month': 'mese',
4447
'activeUsers.legend.newUsers': 'Nuovi utenti',
4548
'activeUsers.legend.returningUsers': 'Utenti di ritorno',
4649
'templates.title': 'Top template',
@@ -57,11 +60,13 @@ const adoptionInsightsTranslationIt = createTranslationMessages({
5760
'techDocs.allTitle': 'Tutti i TechDocs',
5861
'searches.title': 'Top ricerche',
5962
'searches.totalCount': '{{count}} ricerche',
60-
'searches.averagePrefix': 'In media',
61-
'searches.averageText': '{{count}} ricerche per {{period}}',
62-
'searches.averageSuffix': 'sono state condotte durante questo periodo.',
63+
'searches.averagePrefix': 'Il numero medio di ricerche era',
64+
'searches.averageText': '{{count}} per {{period}}',
65+
'searches.averageSuffix': ' per questo periodo.',
6366
'searches.hour': 'ora',
6467
'searches.day': 'giorno',
68+
'searches.week': 'settimana',
69+
'searches.month': 'mese',
6570
'users.title': 'Numero totale di utenti',
6671
'users.haveLoggedIn': 'hanno effettuato il login',
6772
'users.loggedInUsers': 'Utenti connessi',

0 commit comments

Comments
 (0)