diff --git a/src/web/hooks/__tests__/usePageFilter.jsx b/src/web/hooks/__tests__/usePageFilter.jsx
new file mode 100644
index 0000000000..6f12833aa5
--- /dev/null
+++ b/src/web/hooks/__tests__/usePageFilter.jsx
@@ -0,0 +1,378 @@
+/* SPDX-FileCopyrightText: 2024 Greenbone AG
+ *
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+/* eslint-disable react/prop-types */
+
+import {describe, test, expect, testing} from '@gsa/testing';
+
+import Filter, {DEFAULT_FALLBACK_FILTER} from 'gmp/models/filter';
+
+import {fireEvent, rendererWith, screen} from 'web/utils/testing';
+
+import {loadingActions} from 'web/store/usersettings/defaults/actions';
+import {defaultFilterLoadingActions} from 'web/store/usersettings/defaultfilters/actions';
+
+import usePageFilter from '../usePageFilter';
+import {pageFilter} from 'web/store/pages/actions';
+
+const TestComponent = ({fallbackFilter}) => {
+ const [filter, isLoadingFilter, changeFilter, removeFilter, resetFilter] =
+ usePageFilter('somePage', {fallbackFilter});
+ return (
+ <>
+ {isLoadingFilter ? (
+
Loading...
+ ) : (
+ <>
+ {filter.toFilterString()}
+
+
+