Repository: oliverschwendener/ueli
Pull request #1219 (2024-09-24 10:10:32)

refactor(SearchResultItemActionUtility): split up class into separate files
Title says it all.


Patch:
diff --git a/src/common/Core/SearchResultItemActionUtility.ts b/src/common/Core/SearchResultItemActionUtility.ts
deleted file mode 100644
index 555fe6ca..00000000
--- a/src/common/Core/SearchResultItemActionUtility.ts
+++ /dev/null
@@ -1,153 +0,0 @@
-import type { FluentIcon } from "./FluentIcon";
-import type { SearchResultItemAction } from "./SearchResultItemAction";
-
-/**
- * A utility class for creating SearchResultItemActions.
- */
-export class SearchResultItemActionUtility {
-    /**
-     * Creates an action to add the given SearchResultItem to the favorites by its ID.
-     */
-    public static createAddToFavoritesAction({ id }: { id: string }): SearchResultItemAction {
-        return {
-            argument: JSON.stringify({ action: "Add", id }),
-            description: "Add to favorites",
-            descriptionTranslation: {
-                key: "addToFavorites",
-                namespace: "searchResultItemAction",
-            },
-            handlerId: "Favorites",
-            fluentIcon: "StarRegular",
-        };
-    }
-
-    /**
-     * Creates an action to remove the given SearchResultItem from the favorites by its ID.
-     */
-    public static createRemoveFromFavoritesAction({ id }: { id: string }): SearchResultItemAction {
-        return {
-            argument: JSON.stringify({ action: "Remove", id }),
-            description: "Remove from favorites",
-            descriptionTranslation: {
-                key: "removeFromFavorites",
-                namespace: "searchResultItemAction",
-            },
-            handlerId: "Favorites",
-            fluentIcon: "StarOffRegular",
-        };
-    }
-
-    /**
-     * Creates an action to navigate to the given extension by its ID.
-     * When returned action is invoked, the UI will navigate to the extension's custom UI page.
-     */
-    public static createInvokeExtensionAction({
-        extensionId,
-        description,
-        fluentIcon,
-    }: {
-        extensionId: string;
-        description: string;
-        fluentIcon?: FluentIcon;
-    }): SearchResultItemAction {
-        return {
-            argument: `/extension/${extensionId}`,
-            description,
-            handlerId: "navigateTo",
-            fluentIcon,
-        };
-    }
-
-    /**
-     * Creates an action to open the given file path.
-     */
-    public static createOpenFileAction({
-        filePath,
-        description,
-        descriptionTranslation,
-    }: {
-        filePath: string;
-        description: string;
-        descriptionTranslation?: { key: string; namespace: string };
-    }): SearchResultItemAction {
-        return {
-            argument: filePath,
-            description,
-            descriptionTranslation,
-            handlerId: "OpenFilePath",
-            fluentIcon: "OpenRegular",
-            hideWindowAfterInvocation: true,
-        };
-    }
-
-    /**
-     * Creates an action to exclude the given SearchResultItem from the search results by its ID.
-     */
-    public static createExcludeFromSearchResultsAction({ id }: { id: string }): SearchResultItemAction {
-        return {
-            argument: id,
-            description: "Exclude from search results",
-            descriptionTranslation: {
-                key: "excludeFromSearchResults",
-                namespace: "searchResultItemAction",
-            },
-            handlerId: "excludeFromSearchResults",
-            fluentIcon: "EyeOffRegular",
-        };
-    }
-
-    /**
-     * Creates an action to open the given URL in the default browser.
-     */
-    public static createOpenUrlSearchResultAction({ url }: { url: string }): SearchResultItemAction {
-        return {
-            argument: url,
-            description: "Open URL in browser",
-            descriptionTranslation: {
-                key: "openUrlInBrowser",
-                namespace: "searchResultItemAction",
-            },
-            handlerId: "Url",
-            fluentIcon: "OpenRegular",
-            hideWindowAfterInvocation: true,
-        };
-    }
-
-    /**
-     * Creates an action to copy the given text to the clipboard.
-     */
-    public static createCopyToClipboardAction({
-        textToCopy,
-        description,
-        descriptionTranslation,
-    }: {
-        textToCopy: string;
-        description: string;
-        descriptionTranslation?: { key: string; namespace: string };
-    }): SearchResultItemAction {
-        return {
-            argument: textToCopy,
-            description,
-            descriptionTranslation,
-            handlerId: "copyToClipboard",
-            fluentIcon: "CopyRegular",
-        };
-    }
-
-    /**
-     * Creates an action to show the given file in the default file browser.
-     */
-    public static createShowItemInFileExplorerAction({ filePath }: { filePath: string }): SearchResultItemAction {
-        return {
-            argument: filePath,
-            description: "Show in file explorer",
-            descriptionTranslation: {
-                key: "showInFileExplorer",
-                namespace: "searchResultItemAction",
-            },
-            handlerId: "ShowItemInFileExplorer",
-            fluentIcon: "DocumentFolderRegular",
-            hideWindowAfterInvocation: true,
-        };
-    }
-}
diff --git a/src/common/Core/SearchResultItemActionUtility/createAddToFavoritesAction.ts b/src/common/Core/SearchResultItemActionUtility/createAddToFavoritesAction.ts
new file mode 100644
index 00000000..f59b3afa
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createAddToFavoritesAction.ts
@@ -0,0 +1,15 @@
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+
+/**
+ * Creates an action to add the given SearchResultItem to the favorites by its ID.
+ */
+export const createAddToFavoritesAction = ({ id }: { id: string }): SearchResultItemAction => ({
+    argument: JSON.stringify({ action: "Add", id }),
+    description: "Add to favorites",
+    descriptionTranslation: {
+        key: "addToFavorites",
+        namespace: "searchResultItemAction",
+    },
+    handlerId: "Favorites",
+    fluentIcon: "StarRegular",
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createCopyToClipboardAction.ts b/src/common/Core/SearchResultItemActionUtility/createCopyToClipboardAction.ts
new file mode 100644
index 00000000..28df5521
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createCopyToClipboardAction.ts
@@ -0,0 +1,20 @@
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+
+/**
+ * Creates an action to copy the given text to the clipboard.
+ */
+export const createCopyToClipboardAction = ({
+    textToCopy,
+    description,
+    descriptionTranslation,
+}: {
+    textToCopy: string;
+    description: string;
+    descriptionTranslation?: { key: string; namespace: string };
+}): SearchResultItemAction => ({
+    argument: textToCopy,
+    description,
+    descriptionTranslation,
+    handlerId: "copyToClipboard",
+    fluentIcon: "CopyRegular",
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createExcludeFromSearchResultsAction.ts b/src/common/Core/SearchResultItemActionUtility/createExcludeFromSearchResultsAction.ts
new file mode 100644
index 00000000..f53468ec
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createExcludeFromSearchResultsAction.ts
@@ -0,0 +1,15 @@
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+
+/**
+ * Creates an action to exclude the given SearchResultItem from the search results by its ID.
+ */
+export const createExcludeFromSearchResultsAction = ({ id }: { id: string }): SearchResultItemAction => ({
+    argument: id,
+    description: "Exclude from search results",
+    descriptionTranslation: {
+        key: "excludeFromSearchResults",
+        namespace: "searchResultItemAction",
+    },
+    handlerId: "excludeFromSearchResults",
+    fluentIcon: "EyeOffRegular",
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createInvokeExtensionAction.ts b/src/common/Core/SearchResultItemActionUtility/createInvokeExtensionAction.ts
new file mode 100644
index 00000000..4c08f1f1
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createInvokeExtensionAction.ts
@@ -0,0 +1,21 @@
+import type { FluentIcon } from "../FluentIcon";
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+
+/**
+ * Creates an action to navigate to the given extension by its ID.
+ * When returned action is invoked, the UI will navigate to the extension's custom UI page.
+ */
+export const createInvokeExtensionAction = ({
+    extensionId,
+    description,
+    fluentIcon,
+}: {
+    extensionId: string;
+    description: string;
+    fluentIcon?: FluentIcon;
+}): SearchResultItemAction => ({
+    argument: `/extension/${extensionId}`,
+    description,
+    handlerId: "navigateTo",
+    fluentIcon,
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createOpenFileAction.ts b/src/common/Core/SearchResultItemActionUtility/createOpenFileAction.ts
new file mode 100644
index 00000000..bbf4515c
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createOpenFileAction.ts
@@ -0,0 +1,21 @@
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+
+/**
+ * Creates an action to open the given file path.
+ */
+export const createOpenFileAction = ({
+    filePath,
+    description,
+    descriptionTranslation,
+}: {
+    filePath: string;
+    description: string;
+    descriptionTranslation?: { key: string; namespace: string };
+}): SearchResultItemAction => ({
+    argument: filePath,
+    description,
+    descriptionTranslation,
+    handlerId: "OpenFilePath",
+    fluentIcon: "OpenRegular",
+    hideWindowAfterInvocation: true,
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createOpenUrlSearchResultAction.ts b/src/common/Core/SearchResultItemActionUtility/createOpenUrlSearchResultAction.ts
new file mode 100644
index 00000000..0e2e3bba
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createOpenUrlSearchResultAction.ts
@@ -0,0 +1,16 @@
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+
+/**
+ * Creates an action to open the given URL in the default browser.
+ */
+export const createOpenUrlSearchResultAction = ({ url }: { url: string }): SearchResultItemAction => ({
+    argument: url,
+    description: "Open URL in browser",
+    descriptionTranslation: {
+        key: "openUrlInBrowser",
+        namespace: "searchResultItemAction",
+    },
+    handlerId: "Url",
+    fluentIcon: "OpenRegular",
+    hideWindowAfterInvocation: true,
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createRemoveFromFavoritesAction.ts b/src/common/Core/SearchResultItemActionUtility/createRemoveFromFavoritesAction.ts
new file mode 100644
index 00000000..d351999d
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createRemoveFromFavoritesAction.ts
@@ -0,0 +1,15 @@
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+
+/**
+ * Creates an action to remove the given SearchResultItem from the favorites by its ID.
+ */
+export const createRemoveFromFavoritesAction = ({ id }: { id: string }): SearchResultItemAction => ({
+    argument: JSON.stringify({ action: "Remove", id }),
+    description: "Remove from favorites",
+    descriptionTranslation: {
+        key: "removeFromFavorites",
+        namespace: "searchResultItemAction",
+    },
+    handlerId: "Favorites",
+    fluentIcon: "StarOffRegular",
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createShowItemInFileExplorerAction.ts b/src/common/Core/SearchResultItemActionUtility/createShowItemInFileExplorerAction.ts
new file mode 100644
index 00000000..caef20a0
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createShowItemInFileExplorerAction.ts
@@ -0,0 +1,16 @@
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+
+/**
+ * Creates an action to show the given file in the default file browser.
+ */
+export const createShowItemInFileExplorerAction = ({ filePath }: { filePath: string }): SearchResultItemAction => ({
+    argument: filePath,
+    description: "Show in file explorer",
+    descriptionTranslation: {
+        key: "showInFileExplorer",
+        namespace: "searchResultItemAction",
+    },
+    handlerId: "ShowItemInFileExplorer",
+    fluentIcon: "DocumentFolderRegular",
+    hideWindowAfterInvocation: true,
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/index.ts b/src/common/Core/SearchResultItemActionUtility/index.ts
new file mode 100644
index 00000000..b0de10b5
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/index.ts
@@ -0,0 +1,8 @@
+export * from "./createAddToFavoritesAction";
+export * from "./createCopyToClipboardAction";
+export * from "./createExcludeFromSearchResultsAction";
+export * from "./createInvokeExtensionAction";
+export * from "./createOpenFileAction";
+export * from "./createOpenUrlSearchResultAction";
+export * from "./createRemoveFromFavoritesAction";
+export * from "./createShowItemInFileExplorerAction";
diff --git a/src/main/Extensions/ApplicationSearch/Linux/LinuxApplication.ts b/src/main/Extensions/ApplicationSearch/Linux/LinuxApplication.ts
index c63ecea8..826e128f 100644
--- a/src/main/Extensions/ApplicationSearch/Linux/LinuxApplication.ts
+++ b/src/main/Extensions/ApplicationSearch/Linux/LinuxApplication.ts
@@ -1,5 +1,5 @@
 import type { SearchResultItem } from "@common/Core";
-import { SearchResultItemActionUtility } from "@common/Core";
+import { createCopyToClipboardAction, createShowItemInFileExplorerAction } from "@common/Core";
 import type { Image } from "@common/Core/Image";
 import type { Application } from "../Application";
 import { createLaunchDesktopFileAction } from "./createLaunchDesktopFileAction";
@@ -30,8 +30,8 @@ export class LinuxApplication implements Application {
                 },
             }),
             additionalActions: [
-                SearchResultItemActionUtility.createShowItemInFileExplorerAction({ filePath: this.filePath }),
-                SearchResultItemActionUtility.createCopyToClipboardAction({
+                createShowItemInFileExplorerAction({ filePath: this.filePath }),
+                createCopyToClipboardAction({
                     textToCopy: this.filePath,
                     description: "Copy file path to clipboard",
                     descriptionTranslation: {
diff --git a/src/main/Extensions/ApplicationSearch/Windows/WindowsApplication.ts b/src/main/Extensions/ApplicationSearch/Windows/WindowsApplication.ts
index 0f3d08b3..36cb63df 100644
--- a/src/main/Extensions/ApplicationSearch/Windows/WindowsApplication.ts
+++ b/src/main/Extensions/ApplicationSearch/Windows/WindowsApplication.ts
@@ -1,5 +1,9 @@
-import type { SearchResultItem } from "@common/Core";
-import { SearchResultItemActionUtility } from "@common/Core";
+import {
+    createCopyToClipboardAction,
+    createOpenFileAction,
+    createShowItemInFileExplorerAction,
+    type SearchResultItem,
+} from "@common/Core";
 import type { Image } from "@common/Core/Image";
 import type { Application } from "../Application";
 
@@ -20,7 +24,7 @@ export class WindowsApplication implements Application {
             id: this.getId(),
             name: this.name,
             image: this.image,
-            defaultAction: SearchResultItemActionUtility.createOpenFileAction({
+            defaultAction: createOpenFileAction({
                 filePath: this.filePath,
                 description: "Open application",
                 descriptionTranslation: {
@@ -40,8 +44,8 @@ export class WindowsApplication implements Application {
                     hideWindowAfterInvocation: true,
                     handlerId: "WindowsOpenAsAdministrator",
                 },
-                SearchResultItemActionUtility.createShowItemInFileExplorerAction({ filePath: this.filePath }),
-                SearchResultItemActionUtility.createCopyToClipboardAction({
+                createShowItemInFileExplorerAction({ filePath: this.filePath }),
+                createCopyToClipboardAction({
                     textToCopy: this.filePath,
                     description: "Copy file path to clipboard",
                     descriptionTranslation: {
diff --git a/src/main/Extensions/ApplicationSearch/macOS/MacOsApplication.ts b/src/main/Extensions/ApplicationSearch/macOS/MacOsApplication.ts
index 9e54f16c..3c48d6a9 100644
--- a/src/main/Extensions/ApplicationSearch/macOS/MacOsApplication.ts
+++ b/src/main/Extensions/ApplicationSearch/macOS/MacOsApplication.ts
@@ -1,5 +1,9 @@
-import type { SearchResultItem } from "@common/Core";
-import { SearchResultItemActionUtility } from "@common/Core";
+import {
+    createCopyToClipboardAction,
+    createOpenFileAction,
+    createShowItemInFileExplorerAction,
+    type SearchResultItem,
+} from "@common/Core";
 import type { Image } from "@common/Core/Image";
 import type { Application } from "../Application";
 
@@ -20,7 +24,7 @@ export class MacOsApplication implements Application {
             id: this.getId(),
             name: this.name,
             image: this.image,
-            defaultAction: SearchResultItemActionUtility.createOpenFileAction({
+            defaultAction: createOpenFileAction({
                 filePath: this.filePath,
                 description: "Open application",
                 descriptionTranslation: {
@@ -29,8 +33,8 @@ export class MacOsApplication implements Application {
                 },
             }),
             additionalActions: [
-                SearchResultItemActionUtility.createShowItemInFileExplorerAction({ filePath: this.filePath }),
-                SearchResultItemActionUtility.createCopyToClipboardAction({
+                createShowItemInFileExplorerAction({ filePath: this.filePath }),
+                createCopyToClipboardAction({
                     textToCopy: this.filePath,
                     description: "Copy file path to clipboard",
                     descriptionTranslation: {
diff --git a/src/main/Extensions/Base64Conversion/Base64Conversion.ts b/src/main/Extensions/Base64Conversion/Base64Conversion.ts
index 42e1c0d6..a2de9d17 100644
--- a/src/main/Extensions/Base64Conversion/Base64Conversion.ts
+++ b/src/main/Extensions/Base64Conversion/Base64Conversion.ts
@@ -1,7 +1,7 @@
 import type { AssetPathResolver } from "@Core/AssetPathResolver";
 import type { Extension } from "@Core/Extension";
 import type { Translator } from "@Core/Translator";
-import { type SearchResultItem, SearchResultItemActionUtility } from "@common/Core";
+import { createInvokeExtensionAction, type SearchResultItem } from "@common/Core";
 import type { Image } from "@common/Core/Image";
 import type { InvocationArgument } from "@common/Extensions/Base64Conversion";
 import { Base64Converter } from "./Base64Converter";
@@ -29,7 +29,7 @@ export class Base64Conversion implements Extension {
                 description: t("searchResultItemDescription"),
                 name: t("searchResultItemName"),
                 image: this.getImage(),
-                defaultAction: SearchResultItemActionUtility.createInvokeExtensionAction({
+                defaultAction: createInvokeExtensionAction({
                     extensionId: this.id,
                     description: t("searchResultItemActionDescription"),
                     fluentIcon: "OpenRegular",
diff --git a/src/main/Extensions/BrowserBookmarks/BrowserBookmarks.ts b/src/main/Extensions/BrowserBookmarks/BrowserBookmarks.ts
index 5a19084f..4c63e189 100644
--- a/src/main/Extensions/BrowserBookmarks/BrowserBookmarks.ts
+++ b/src/main/Extensions/BrowserBookmarks/BrowserBookmarks.ts
@@ -3,7 +3,12 @@ import type { Extension } from "@Core/Extension";
 import type { UrlImageGenerator } from "@Core/ImageGenerator";
 import type { SettingsManager } from "@Core/SettingsManager";
 import type { Translator } from "@Core/Translator";
-import { SearchResultItemActionUtility, type OperatingSystem, type SearchResultItem } from "@common/Core";
+import {
+    createCopyToClipboardAction,
+    createOpenUrlSearchResultAction,
+    type OperatingSystem,
+    type SearchResultItem,
+} from "@common/Core";
 import { getExtensionSettingKey } from "@common/Core/Extension";
 import type { Image } from "@common/Core/Image";
 import type { Browser } from "@common/Extensions/BrowserBookmarks";
@@ -52,14 +57,14 @@ export class BrowserBookmarks implements Extension {
         const toSearchResultItem = (browserBookmark: BrowserBookmark, browserName: Browser) => {
             return {
                 description: t("searchResultItemDescription", { browserName }),
-                defaultAction: SearchResultItemActionUtility.createOpenUrlSearchResultAction({
+                defaultAction: createOpenUrlSearchResultAction({
                     url: browserBookmark.getUrl(),
                 }),
                 id: browserBookmark.getId(),
                 name: this.getName(browserBookmark),
                 image: this.getBrowserBookmarkImage(browserBookmark, browserName),
                 additionalActions: [
-                    SearchResultItemActionUtility.createCopyToClipboardAction({
+                    createCopyToClipboardAction({
                         textToCopy: browserBookmark.getUrl(),
                         description: "Copy URL to clipboard",
                         descriptionTranslation: {
diff --git a/src/main/Extensions/Calculator/CalculatorExtension.ts b/src/main/Extensions/Calculator/CalculatorExtension.ts
index a1f3f456..1ea5fcf1 100644
--- a/src/main/Extensions/Calculator/CalculatorExtension.ts
+++ b/src/main/Extensions/Calculator/CalculatorExtension.ts
@@ -1,7 +1,7 @@
 import type { AssetPathResolver } from "@Core/AssetPathResolver";
 import type { Extension } from "@Core/Extension";
 import type { SettingsManager } from "@Core/SettingsManager";
-import { SearchResultItemActionUtility, type SearchResultItem } from "@common/Core";
+import { createCopyToClipboardAction, type SearchResultItem } from "@common/Core";
 import { getExtensionSettingKey } from "@common/Core/Extension";
 import type { Image } from "@common/Core/Image";
 import { Calculator } from "./Calculator";
@@ -54,7 +54,7 @@ export class CalculatorExtension implements Extension {
                 },
                 id: "calculator:instantResult",
                 image: this.getImage(),
-                defaultAction: SearchResultItemActionUtility.createCopyToClipboardAction({
+                defaultAction: createCopyToClipboardAction({
                     textToCopy: result,
                     description: "Copy result to clipboard",
                     descriptionTranslation: {
diff --git a/src/main/Extensions/ColorConverter/ColorConverterExtension.ts b/src/main/Extensions/ColorConverter/ColorConverterExtension.ts
index e1850172..b779ae54 100644
--- a/src/main/Extensions/ColorConverter/ColorConverterExtension.ts
+++ b/src/main/Extensions/ColorConverter/ColorConverterExtension.ts
@@ -1,4 +1,4 @@
-import { SearchResultItemActionUtility, type SearchResultItem } from "@common/Core";
+import { createCopyToClipboardAction, type SearchResultItem } from "@common/Core";
 import type { Image } from "@common/Core/Image";
 import type { Resources, Translations } from "@common/Core/Translator";
 import type { AssetPathResolver } from "@Core/AssetPathResolver";
@@ -77,7 +77,7 @@ export class ColorConverterExtension implements Extension {
             .convertFromString(searchTerm)
             .filter(({ format }) => this.getEnabledColorFormats().includes(format))
             .map(({ format, value }) => ({
-                defaultAction: SearchResultItemActionUtility.createCopyToClipboardAction({
+                defaultAction: createCopyToClipboardAction({
                     textToCopy: value,
                     description: "Copy color to clipboard",
                     descriptionTranslation: {
diff --git a/src/main/Extensions/CurrencyConversion/CurrencyConversion.ts b/src/main/Extensions/CurrencyConversion/CurrencyConversion.ts
index de96995c..bacd53b6 100644
--- a/src/main/Extensions/CurrencyConversion/CurrencyConversion.ts
+++ b/src/main/Extensions/CurrencyConversion/CurrencyConversion.ts
@@ -1,4 +1,4 @@
-import { SearchResultItemActionUtility, type SearchResultItem } from "@common/Core";
+import { createCopyToClipboardAction, type SearchResultItem } from "@common/Core";
 import { getExtensionSettingKey } from "@common/Core/Extension";
 import type { Image } from "@common/Core/Image";
 import type { AssetPathResolver } from "@Core/AssetPathResolver";
@@ -67,7 +67,7 @@ export class CurrencyConversion implements Extension {
 
         return [
             {
-                defaultAction: SearchResultItemActionUtility.createCopyToClipboardAction({
+                defaultAction: createCopyToClipboardAction({
                     textToCopy: conversionResult.result.toFixed(2),
                     description: "Currency Conversion",
                     descriptionTranslation: {
diff --git a/src/main/Extensions/DeeplTranslator/DeeplTranslatorExtension.ts b/src/main/Extensions/DeeplTranslator/DeeplTranslatorExtension.ts
index 4777e0cb..fff886d5 100644
--- a/src/main/Extensions/DeeplTranslator/DeeplTranslatorExtension.ts
+++ b/src/main/Extensions/DeeplTranslator/DeeplTranslatorExtension.ts
@@ -2,7 +2,7 @@ import type { AssetPathResolver } from "@Core/AssetPathResolver";
 import type { Extension } from "@Core/Extension";
 import type { SettingsManager } from "@Core/SettingsManager";
 import type { Translator } from "@Core/Translator";
-import { SearchResultItemActionUtility, type SearchResultItem } from "@common/Core";
+import { createInvokeExtensionAction, type SearchResultItem } from "@common/Core";
 import { getExtensionSettingKey } from "@common/Core/Extension";
 import type { Image } from "@common/Core/Image";
 import type { Net } from "electron";
@@ -46,7 +46,7 @@ export class DeeplTranslatorExtension implements Extension {
                 description: t("searchResultItemDescription"),
                 name: t("searchResultItemName"),
                 image: this.getImage(),
-                defaultAction: SearchResultItemActionUtility.createInvokeExtensionAction({
+                defaultAction: createInvokeExtensionAction({
                     extensionId: this.id,
                     description: t("searchResultItemActionDescription"),
                     fluentIcon: "OpenRegular",
diff --git a/src/main/Extensions/FileSearch/FileSearch.ts b/src/main/Extensions/FileSearch/FileSearch.ts
index af51785e..ab16ab6a 100644
--- a/src/main/Extensions/FileSearch/FileSearch.ts
+++ b/src/main/Extensions/FileSearch/FileSearch.ts
@@ -4,7 +4,12 @@ import type { FileSystemUtility } from "@Core/FileSystemUtility";
 import type { Logger } from "@Core/Logger";
 import type { SettingsManager } from "@Core/SettingsManager";
 import type { Translator } from "@Core/Translator";
-import { SearchResultItemActionUtility, type OperatingSystem, type SearchResultItem } from "@common/Core";
+import {
+    createInvokeExtensionAction,
+    createOpenFileAction,
+    type OperatingSystem,
+    type SearchResultItem,
+} from "@common/Core";
 import { getExtensionSettingKey } from "@common/Core/Extension";
 import type { Image } from "@common/Core/Image";
 import type { App } from "electron";
@@ -46,7 +51,7 @@ export class FileSearch implements Extension {
 
         return [
             {
-                defaultAction: SearchResultItemActionUtility.createInvokeExtensionAction({
+                defaultAction: createInvokeExtensionAction({
                     extensionId: this.id,
                     description: "Search files",
                 }),
@@ -110,7 +115,7 @@ export class FileSearch implements Extension {
                 this.fileSystemUtility.isAccessibleSync(filePath) && this.fileSystemUtility.isDirectory(filePath);
 
             return {
-                defaultAction: SearchResultItemActionUtility.createOpenFileAction({
+                defaultAction: createOpenFileAction({
                     filePath,
                     description: `Open ${isDirectory ? "Folder" : "File"}`,
                 }),
diff --git a/src/main/Extensions/SimpleFileSearch/SimpleFileSearchExtension.ts b/src/main/Extensions/SimpleFileSearch/SimpleFileSearchExtension.ts
index 2a37dd22..f2a928c2 100644
--- a/src/main/Extensions/SimpleFileSearch/SimpleFileSearchExtension.ts
+++ b/src/main/Extensions/SimpleFileSearch/SimpleFileSearchExtension.ts
@@ -1,5 +1,5 @@
 import type { OperatingSystem } from "@common/Core";
-import { SearchResultItemActionUtility, type SearchResultItem } from "@common/Core";
+import { createOpenFileAction, createShowItemInFileExplorerAction, type SearchResultItem } from "@common/Core";
 import { getExtensionSettingKey } from "@common/Core/Extension";
 import type { Image } from "@common/Core/Image";
 import type { Resources, Translations } from "@common/Core/Translator";
@@ -66,11 +66,11 @@ export class SimpleFileSearchExtension implements Extension {
                     name: basename(filePath),
                     description: types[filePath] === "folder" ? t("folder") : t("file"),
                     image: images[filePath] ?? this.getDefaultIcon(),
-                    defaultAction: SearchResultItemActionUtility.createOpenFileAction({
+                    defaultAction: createOpenFileAction({
                         filePath,
                         description: types[filePath] === "folder" ? t("openFolder") : t("openFile"),
                     }),
-                    additionalActions: [SearchResultItemActionUtility.createShowItemInFileExplorerAction({ filePath })],
+                    additionalActions: [createShowItemInFileExplorerAction({ filePath })],
                 });
             }
         }
diff --git a/src/main/Extensions/SystemSettings/MacOsSystemSetting.ts b/src/main/Extensions/SystemSettings/MacOsSystemSetting.ts
index ae2956d2..87b2bdaf 100644
--- a/src/main/Extensions/SystemSettings/MacOsSystemSetting.ts
+++ b/src/main/Extensions/SystemSettings/MacOsSystemSetting.ts
@@ -1,4 +1,4 @@
-import { SearchResultItemActionUtility, type SearchResultItem } from "@common/Core";
+import { createOpenFileAction, type SearchResultItem } from "@common/Core";
 import type { SystemSetting } from "./SystemSetting";
 
 export class MacOsSystemSetting implements SystemSetting {
@@ -13,7 +13,7 @@ export class MacOsSystemSetting implements SystemSetting {
             id: this.getId(),
             name: this.name,
             description: "System Setting",
-            defaultAction: SearchResultItemActionUtility.createOpenFileAction({
+            defaultAction: createOpenFileAction({
                 filePath: this.filePath,
                 description: "Open System Setting",
             }),
diff --git a/src/main/Extensions/WebSearch/WebSearchExtension.ts b/src/main/Extensions/WebSearch/WebSearchExtension.ts
index 268c6d83..c5047f77 100644
--- a/src/main/Extensions/WebSearch/WebSearchExtension.ts
+++ b/src/main/Extensions/WebSearch/WebSearchExtension.ts
@@ -1,7 +1,7 @@
 import type { AssetPathResolver } from "@Core/AssetPathResolver";
 import type { Extension } from "@Core/Extension";
 import type { SettingsManager } from "@Core/SettingsManager";
-import { SearchResultItemActionUtility, type SearchResultItem } from "@common/Core";
+import { createInvokeExtensionAction, createOpenUrlSearchResultAction, type SearchResultItem } from "@common/Core";
 import { getExtensionSettingKey } from "@common/Core/Extension";
 import type { Image } from "@common/Core/Image";
 import type { WebSearchEngine } from "./WebSearchEngine";
@@ -64,7 +64,7 @@ export class WebSearchExtension implements Extension {
         return [
             {
                 id: "webSearch:invoke",
-                defaultAction: SearchResultItemActionUtility.createInvokeExtensionAction({
+                defaultAction: createInvokeExtensionAction({
                     description: `Search ${webSearchEngine.getName()}`,
                     extensionId: this.id,
                 }),
@@ -98,7 +98,7 @@ export class WebSearchExtension implements Extension {
             ...suggestions.map(
                 (s, i) =>
                     <SearchResultItem>{
-                        defaultAction: SearchResultItemActionUtility.createOpenUrlSearchResultAction({ url: s.url }),
+                        defaultAction: createOpenUrlSearchResultAction({ url: s.url }),
                         description: "Suggestion",
                         id: `suggestion-${i}`,
                         name: s.text,
@@ -148,7 +148,7 @@ export class WebSearchExtension implements Extension {
         webSearchEngine: WebSearchEngine,
     ): SearchResultItem {
         return {
-            defaultAction: SearchResultItemActionUtility.createOpenUrlSearchResultAction({
+            defaultAction: createOpenUrlSearchResultAction({
                 url: webSearchEngine.getSearchUrl(searchTerm, locale),
             }),
             description: webSearchEngine.getName(),
diff --git a/src/renderer/Core/Search/ActionsMenu/getActions.ts b/src/renderer/Core/Search/ActionsMenu/getActions.ts
index 2863ab74..4a14acaa 100644
--- a/src/renderer/Core/Search/ActionsMenu/getActions.ts
+++ b/src/renderer/Core/Search/ActionsMenu/getActions.ts
@@ -1,11 +1,17 @@
-import { SearchResultItemActionUtility, type SearchResultItem, type SearchResultItemAction } from "@common/Core";
+import {
+    createAddToFavoritesAction,
+    createExcludeFromSearchResultsAction,
+    createRemoveFromFavoritesAction,
+    type SearchResultItem,
+    type SearchResultItemAction,
+} from "@common/Core";
 
 export const getActions = (searchResultItem: SearchResultItem, favorites: string[]): SearchResultItemAction[] => {
     const defaultAdditionalActions = [
         favorites.includes(searchResultItem.id)
-            ? SearchResultItemActionUtility.createRemoveFromFavoritesAction({ id: searchResultItem.id })
-            : SearchResultItemActionUtility.createAddToFavoritesAction(searchResultItem),
-        SearchResultItemActionUtility.createExcludeFromSearchResultsAction(searchResultItem),
+            ? createRemoveFromFavoritesAction({ id: searchResultItem.id })
+            : createAddToFavoritesAction(searchResultItem),
+        createExcludeFromSearchResultsAction(searchResultItem),
     ];
 
     return [searchResultItem.defaultAction, ...(searchResultItem.additionalActions ?? []), ...defaultAdditionalActions];


Test patch:
diff --git a/src/common/Core/SearchResultItemActionUtility.test.ts b/src/common/Core/SearchResultItemActionUtility.test.ts
deleted file mode 100644
index 4ff48687..00000000
--- a/src/common/Core/SearchResultItemActionUtility.test.ts
+++ /dev/null
@@ -1,153 +0,0 @@
-import { describe, expect, it } from "vitest";
-import type { SearchResultItemAction } from "./SearchResultItemAction";
-import { SearchResultItemActionUtility } from "./SearchResultItemActionUtility";
-
-describe(SearchResultItemActionUtility, () => {
-    describe(SearchResultItemActionUtility.createCopyToClipboardAction, () => {
-        it("should create an 'add to favorites' action", () => {
-            const actual = SearchResultItemActionUtility.createAddToFavoritesAction({ id: "id_1" });
-
-            const expected = <SearchResultItemAction>{
-                argument: JSON.stringify({ action: "Add", id: "id_1" }),
-                description: "Add to favorites",
-                descriptionTranslation: {
-                    key: "addToFavorites",
-                    namespace: "searchResultItemAction",
-                },
-                handlerId: "Favorites",
-                fluentIcon: "StarRegular",
-            };
-
-            expect(actual).toEqual(expected);
-        });
-
-        it("should create a 'remove from favorites' action", () => {
-            const actual = SearchResultItemActionUtility.createRemoveFromFavoritesAction({ id: "id_1" });
-
-            const expected = <SearchResultItemAction>{
-                argument: JSON.stringify({ action: "Remove", id: "id_1" }),
-                description: "Remove from favorites",
-                descriptionTranslation: {
-                    key: "removeFromFavorites",
-                    namespace: "searchResultItemAction",
-                },
-                handlerId: "Favorites",
-                fluentIcon: "StarOffRegular",
-            };
-
-            expect(actual).toEqual(expected);
-        });
-
-        it("should create an 'copy to clipboard' action", () => {
-            const actual = SearchResultItemActionUtility.createCopyToClipboardAction({
-                description: "test description",
-                textToCopy: "text to copy",
-                descriptionTranslation: {
-                    key: "translation key",
-                    namespace: "translation namespace",
-                },
-            });
-
-            const expected = <SearchResultItemAction>{
-                argument: "text to copy",
-                description: "test description",
-                descriptionTranslation: {
-                    key: "translation key",
-                    namespace: "translation namespace",
-                },
-                fluentIcon: "CopyRegular",
-                handlerId: "copyToClipboard",
-            };
-
-            expect(actual).toEqual(expected);
-        });
-    });
-
-    describe(SearchResultItemActionUtility.createExcludeFromSearchResultsAction, () => {
-        it("should create an 'exclude from search results' action", () => {
-            const actual = SearchResultItemActionUtility.createExcludeFromSearchResultsAction({ id: "test id" });
-
-            const expected = <SearchResultItemAction>{
-                argument: "test id",
-                description: "Exclude from search results",
-                descriptionTranslation: {
-                    key: "excludeFromSearchResults",
-                    namespace: "searchResultItemAction",
-                },
-                fluentIcon: "EyeOffRegular",
-                handlerId: "excludeFromSearchResults",
-            };
-
-            expect(actual).toEqual(expected);
-        });
-    });
-
-    describe(SearchResultItemActionUtility.createOpenFileAction, () => {
-        it("should create an 'open file' action", () => {
-            const actual = SearchResultItemActionUtility.createOpenFileAction({
-                description: "test description",
-                filePath: "test file path",
-                descriptionTranslation: {
-                    key: "test translation key",
-                    namespace: "test namespace",
-                },
-            });
-
-            const expected = <SearchResultItemAction>{
-                argument: "test file path",
-                description: "test description",
-                descriptionTranslation: {
-                    key: "test translation key",
-                    namespace: "test namespace",
-                },
-                handlerId: "OpenFilePath",
-                fluentIcon: "OpenRegular",
-                hideWindowAfterInvocation: true,
-            };
-
-            expect(actual).toEqual(expected);
-        });
-    });
-
-    describe(SearchResultItemActionUtility.createOpenUrlSearchResultAction, () => {
-        it("should create an 'open url' action", () => {
-            const actual = SearchResultItemActionUtility.createOpenUrlSearchResultAction({ url: "this is an url" });
-
-            const expected = <SearchResultItemAction>{
-                argument: "this is an url",
-                description: "Open URL in browser",
-                descriptionTranslation: {
-                    key: "openUrlInBrowser",
-                    namespace: "searchResultItemAction",
-                },
-                handlerId: "Url",
-                fluentIcon: "OpenRegular",
-                hideWindowAfterInvocation: true,
-            };
-
-            expect(actual).toEqual(expected);
-        });
-    });
-
-    describe(SearchResultItemActionUtility.createShowItemInFileExplorerAction, () => {
-        it("should create an 'show item in file explorer' action", () => {
-            const actual = SearchResultItemActionUtility.createShowItemInFileExplorerAction({
-                filePath: "this is a file path",
-            });
-
-            const expected = <SearchResultItemAction>{
-                argument: "this is a file path",
-                description: "Show in file explorer",
-                handlerId: "ShowItemInFileExplorer",
-                descriptionTranslation: {
-                    key: "showInFileExplorer",
-                    namespace: "searchResultItemAction",
-                },
-                fluentIcon: "DocumentFolderRegular",
-                hideWindowAfterInvocation: true,
-            };
-
-            expect(actual).toEqual(expected);
-        });
-    });
-});
diff --git a/src/common/Core/SearchResultItemActionUtility/createAddToFavoritesAction.test.ts b/src/common/Core/SearchResultItemActionUtility/createAddToFavoritesAction.test.ts
new file mode 100644
index 00000000..62357130
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createAddToFavoritesAction.test.ts
@@ -0,0 +1,22 @@
+import { describe, expect, it } from "vitest";
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+import { createAddToFavoritesAction } from "./createAddToFavoritesAction";
+
+describe(createAddToFavoritesAction, () => {
+    it("should create an 'add to favorites' action", () => {
+        const actual = createAddToFavoritesAction({ id: "id_1" });
+
+        const expected = <SearchResultItemAction>{
+            argument: JSON.stringify({ action: "Add", id: "id_1" }),
+            description: "Add to favorites",
+            descriptionTranslation: {
+                key: "addToFavorites",
+                namespace: "searchResultItemAction",
+            },
+            handlerId: "Favorites",
+            fluentIcon: "StarRegular",
+        };
+
+        expect(actual).toEqual(expected);
+    });
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createCopyToClipboardAction.test.ts b/src/common/Core/SearchResultItemActionUtility/createCopyToClipboardAction.test.ts
new file mode 100644
index 00000000..35e28905
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createCopyToClipboardAction.test.ts
@@ -0,0 +1,29 @@
+import { describe, expect, it } from "vitest";
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+import { createCopyToClipboardAction } from "./createCopyToClipboardAction";
+
+describe(createCopyToClipboardAction, () => {
+    it("should create an 'copy to clipboard' action", () => {
+        const actual = createCopyToClipboardAction({
+            description: "test description",
+            textToCopy: "text to copy",
+            descriptionTranslation: {
+                key: "translation key",
+                namespace: "translation namespace",
+            },
+        });
+
+        const expected = <SearchResultItemAction>{
+            argument: "text to copy",
+            description: "test description",
+            descriptionTranslation: {
+                key: "translation key",
+                namespace: "translation namespace",
+            },
+            fluentIcon: "CopyRegular",
+            handlerId: "copyToClipboard",
+        };
+
+        expect(actual).toEqual(expected);
+    });
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createExcludeFromSearchResultsAction.test.ts b/src/common/Core/SearchResultItemActionUtility/createExcludeFromSearchResultsAction.test.ts
new file mode 100644
index 00000000..570bb993
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createExcludeFromSearchResultsAction.test.ts
@@ -0,0 +1,22 @@
+import { describe, expect, it } from "vitest";
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+import { createExcludeFromSearchResultsAction } from "./createExcludeFromSearchResultsAction";
+
+describe(createExcludeFromSearchResultsAction, () => {
+    it("should create an 'exclude from search results' action", () => {
+        const actual = createExcludeFromSearchResultsAction({ id: "test id" });
+
+        const expected = <SearchResultItemAction>{
+            argument: "test id",
+            description: "Exclude from search results",
+            descriptionTranslation: {
+                key: "excludeFromSearchResults",
+                namespace: "searchResultItemAction",
+            },
+            fluentIcon: "EyeOffRegular",
+            handlerId: "excludeFromSearchResults",
+        };
+
+        expect(actual).toEqual(expected);
+    });
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createOpenFileAction.test.ts b/src/common/Core/SearchResultItemActionUtility/createOpenFileAction.test.ts
new file mode 100644
index 00000000..29b65a98
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createOpenFileAction.test.ts
@@ -0,0 +1,30 @@
+import { describe, expect, it } from "vitest";
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+import { createOpenFileAction } from "./createOpenFileAction";
+
+describe(createOpenFileAction, () => {
+    it("should create an 'open file' action", () => {
+        const actual = createOpenFileAction({
+            description: "test description",
+            filePath: "test file path",
+            descriptionTranslation: {
+                key: "test translation key",
+                namespace: "test namespace",
+            },
+        });
+
+        const expected = <SearchResultItemAction>{
+            argument: "test file path",
+            description: "test description",
+            descriptionTranslation: {
+                key: "test translation key",
+                namespace: "test namespace",
+            },
+            handlerId: "OpenFilePath",
+            fluentIcon: "OpenRegular",
+            hideWindowAfterInvocation: true,
+        };
+
+        expect(actual).toEqual(expected);
+    });
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createOpenUrlSearchResultAction.test.ts b/src/common/Core/SearchResultItemActionUtility/createOpenUrlSearchResultAction.test.ts
new file mode 100644
index 00000000..a3ee315b
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createOpenUrlSearchResultAction.test.ts
@@ -0,0 +1,23 @@
+import { describe, expect, it } from "vitest";
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+import { createOpenUrlSearchResultAction } from "./createOpenUrlSearchResultAction";
+
+describe(createOpenUrlSearchResultAction, () => {
+    it("should create an 'open url' action", () => {
+        const actual = createOpenUrlSearchResultAction({ url: "this is an url" });
+
+        const expected = <SearchResultItemAction>{
+            argument: "this is an url",
+            description: "Open URL in browser",
+            descriptionTranslation: {
+                key: "openUrlInBrowser",
+                namespace: "searchResultItemAction",
+            },
+            handlerId: "Url",
+            fluentIcon: "OpenRegular",
+            hideWindowAfterInvocation: true,
+        };
+
+        expect(actual).toEqual(expected);
+    });
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createRemoveFromFavoritesAction.test.ts b/src/common/Core/SearchResultItemActionUtility/createRemoveFromFavoritesAction.test.ts
new file mode 100644
index 00000000..bec9b4d8
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createRemoveFromFavoritesAction.test.ts
@@ -0,0 +1,22 @@
+import { describe, expect, it } from "vitest";
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+import { createRemoveFromFavoritesAction } from "./createRemoveFromFavoritesAction";
+
+describe(createRemoveFromFavoritesAction, () => {
+    it("should create a 'remove from favorites' action", () => {
+        const actual = createRemoveFromFavoritesAction({ id: "id_1" });
+
+        const expected = <SearchResultItemAction>{
+            argument: JSON.stringify({ action: "Remove", id: "id_1" }),
+            description: "Remove from favorites",
+            descriptionTranslation: {
+                key: "removeFromFavorites",
+                namespace: "searchResultItemAction",
+            },
+            handlerId: "Favorites",
+            fluentIcon: "StarOffRegular",
+        };
+
+        expect(actual).toEqual(expected);
+    });
+});
diff --git a/src/common/Core/SearchResultItemActionUtility/createShowItemInFileExplorerAction.test.ts b/src/common/Core/SearchResultItemActionUtility/createShowItemInFileExplorerAction.test.ts
new file mode 100644
index 00000000..58cb132e
--- /dev/null
+++ b/src/common/Core/SearchResultItemActionUtility/createShowItemInFileExplorerAction.test.ts
@@ -0,0 +1,25 @@
+import { describe, expect, it } from "vitest";
+import type { SearchResultItemAction } from "../SearchResultItemAction";
+import { createShowItemInFileExplorerAction } from "./createShowItemInFileExplorerAction";
+
+describe(createShowItemInFileExplorerAction, () => {
+    it("should create an 'show item in file explorer' action", () => {
+        const actual = createShowItemInFileExplorerAction({
+            filePath: "this is a file path",
+        });
+
+        const expected = <SearchResultItemAction>{
+            argument: "this is a file path",
+            description: "Show in file explorer",
+            handlerId: "ShowItemInFileExplorer",
+            descriptionTranslation: {
+                key: "showInFileExplorer",
+                namespace: "searchResultItemAction",
+            },
+            fluentIcon: "DocumentFolderRegular",
+            hideWindowAfterInvocation: true,
+        };
+
+        expect(actual).toEqual(expected);
+    });
+});
diff --git a/src/main/Extensions/WebSearch/WebSearchExtension.test.ts b/src/main/Extensions/WebSearch/WebSearchExtension.test.ts
index b696aa4f..ee891f6b 100644
--- a/src/main/Extensions/WebSearch/WebSearchExtension.test.ts
+++ b/src/main/Extensions/WebSearch/WebSearchExtension.test.ts
@@ -1,6 +1,6 @@
 import type { AssetPathResolver } from "@Core/AssetPathResolver";
 import type { SettingsManager } from "@Core/SettingsManager";
-import { SearchResultItemActionUtility, type SearchResultItem } from "@common/Core";
+import { createInvokeExtensionAction, createOpenUrlSearchResultAction, type SearchResultItem } from "@common/Core";
 import { getExtensionSettingKey } from "@common/Core/Extension";
 import type { Image } from "@common/Core/Image";
 import { describe, expect, it, vi } from "vitest";
@@ -78,7 +78,7 @@ describe(WebSearchExtension, () => {
 
         expect(webSearchExtension.getInstantSearchResultItems("my search term")).toEqual([
             <SearchResultItem>{
-                defaultAction: SearchResultItemActionUtility.createOpenUrlSearchResultAction({ url: "mySearchUrl" }),
+                defaultAction: createOpenUrlSearchResultAction({ url: "mySearchUrl" }),
                 description: "searchEngine1",
                 id: "search-searchEngine1",
                 image: { url: "file://myAssetFilePath" },
@@ -174,7 +174,7 @@ describe(WebSearchExtension, () => {
 
         expect(await webSearchExtension.getSearchResultItems()).toEqual([
             <SearchResultItem>{
-                defaultAction: SearchResultItemActionUtility.createInvokeExtensionAction({
+                defaultAction: createInvokeExtensionAction({
                     description: "Search MyEngine",
                     extensionId: "WebSearch",
                 }),
@@ -216,7 +216,7 @@ describe(WebSearchExtension, () => {
 
         expect(await webSearchExtension.invoke({ searchTerm: "mySearchTerm" })).toEqual(<SearchResultItem[]>[
             {
-                defaultAction: SearchResultItemActionUtility.createOpenUrlSearchResultAction({
+                defaultAction: createOpenUrlSearchResultAction({
                     url: "search-url-mySearchTerm-de-CH",
                 }),
                 description: "MyEngine",
@@ -225,7 +225,7 @@ describe(WebSearchExtension, () => {
                 image: { url: "file://assets/asset.png" },
             },
             {
-                defaultAction: SearchResultItemActionUtility.createOpenUrlSearchResultAction({ url: "suggestion-url" }),
+                defaultAction: createOpenUrlSearchResultAction({ url: "suggestion-url" }),
                 description: "Suggestion",
                 id: "suggestion-0",
                 name: "suggestion-mySearchTerm-de-CH",
diff --git a/src/renderer/Core/Search/ActionsMenu/getActions.test.ts b/src/renderer/Core/Search/ActionsMenu/getActions.test.ts
index fa22844f..6577c1e1 100644
--- a/src/renderer/Core/Search/ActionsMenu/getActions.test.ts
+++ b/src/renderer/Core/Search/ActionsMenu/getActions.test.ts
@@ -1,4 +1,10 @@
-import { SearchResultItemActionUtility, type SearchResultItem, type SearchResultItemAction } from "@common/Core";
+import {
+    createAddToFavoritesAction,
+    createExcludeFromSearchResultsAction,
+    createRemoveFromFavoritesAction,
+    type SearchResultItem,
+    type SearchResultItemAction,
+} from "@common/Core";
 import { describe, expect, it } from "vitest";
 import { getActions } from "./getActions";
 
@@ -16,8 +22,8 @@ describe(getActions, () => {
         expect(getActions(searchResultItem, [])).toEqual(<SearchResultItemAction[]>[
             { argument: "default action argument", handlerId: "default handler id" },
             { argument: "additional argument", handlerId: "additional handler id" },
-            SearchResultItemActionUtility.createAddToFavoritesAction({ id: searchResultItem.id }),
-            SearchResultItemActionUtility.createExcludeFromSearchResultsAction({ id: searchResultItem.id }),
+            createAddToFavoritesAction({ id: searchResultItem.id }),
+            createExcludeFromSearchResultsAction({ id: searchResultItem.id }),
         ]);
     });
 
@@ -32,8 +38,8 @@ describe(getActions, () => {
 
         expect(getActions(searchResultItem, ["id1"])).toEqual(<SearchResultItemAction[]>[
             { argument: "default action argument", handlerId: "default handler id" },
-            SearchResultItemActionUtility.createRemoveFromFavoritesAction({ id: searchResultItem.id }),
-            SearchResultItemActionUtility.createExcludeFromSearchResultsAction({ id: searchResultItem.id }),
+            createRemoveFromFavoritesAction({ id: searchResultItem.id }),
+            createExcludeFromSearchResultsAction({ id: searchResultItem.id }),
         ]);
     });
 });