Skip to content

Commit f2ad11b

Browse files
chore(extensions): fix sonarqube issue 'The return value of reduce must be used.'
Signed-off-by: Christoph Jerolimov <jerolimov+git@redhat.com>
1 parent 2fd75ad commit f2ad11b

2 files changed

Lines changed: 20 additions & 20 deletions

File tree

workspaces/extensions/e2e-tests/extensions.test.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,12 @@ test.describe('Admin > Extensions', () => {
6060
`^(${Object.values(LOCALE_DISPLAY_NAMES).map(escapeRegExp).join('|')})$`,
6161
);
6262

63-
// Navigating directly avoids flaky duplicate "Settings" links in sidebar.
64-
await page.goto('/settings');
63+
await page.locator('nav').getByRole('link', { name: 'Settings' });
6564
await page
6665
.getByRole('button', { name: localeDisplayPattern })
6766
.first()
6867
.click();
6968
await page.getByRole('option', { name: displayName }).click();
70-
await page.goto('/');
7169
}
7270

7371
test.beforeAll(async ({ browser }) => {

workspaces/extensions/e2e-tests/utils/translations.ts

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,35 +26,37 @@ import extensionsTranslationJa from '../../plugins/extensions/src/alpha/translat
2626

2727
export type ExtensionsMessages = typeof extensionsMessages;
2828

29-
function transform(messages: typeof extensionsTranslationDe.messages) {
30-
const result = Object.keys(messages).reduce((res, key) => {
29+
function transformFlatMessagesIntoTree(
30+
flatMessages: typeof extensionsTranslationDe.messages,
31+
) {
32+
const messages = {} as Record<string, any>;
33+
for (const key of Object.keys(flatMessages)) {
3134
const path = key.split('.');
32-
const lastIndex = path.length - 1;
33-
path.reduce((acc, currentPath, i) => {
34-
acc[currentPath] =
35-
lastIndex === i ? messages[key] : acc[currentPath] || {};
36-
return acc[currentPath];
37-
}, res);
38-
return res;
39-
}, {});
40-
41-
return result as ExtensionsMessages;
35+
let current = messages;
36+
for (let i = 0; i < path.length - 1; i++) {
37+
current[path[i]] = current[path[i]] || {};
38+
current = current[path[i]] as Record<string, any>;
39+
}
40+
current[path[path.length - 1]] =
41+
flatMessages[key as keyof typeof flatMessages];
42+
}
43+
return messages as ExtensionsMessages;
4244
}
4345

4446
export function getTranslations(locale: string) {
4547
switch (locale) {
4648
case 'en':
4749
return extensionsMessages;
4850
case 'de':
49-
return transform(extensionsTranslationDe.messages);
51+
return transformFlatMessagesIntoTree(extensionsTranslationDe.messages);
5052
case 'es':
51-
return transform(extensionsTranslationEs.messages);
53+
return transformFlatMessagesIntoTree(extensionsTranslationEs.messages);
5254
case 'fr':
53-
return transform(extensionsTranslationFr.messages);
55+
return transformFlatMessagesIntoTree(extensionsTranslationFr.messages);
5456
case 'it':
55-
return transform(extensionsTranslationIt.messages);
57+
return transformFlatMessagesIntoTree(extensionsTranslationIt.messages);
5658
case 'ja':
57-
return transform(extensionsTranslationJa.messages);
59+
return transformFlatMessagesIntoTree(extensionsTranslationJa.messages);
5860
default:
5961
return extensionsMessages;
6062
}

0 commit comments

Comments
 (0)