diff --git a/invenio_app_rdm/records_ui/views/filters.py b/invenio_app_rdm/records_ui/views/filters.py index ad366cd0e..1967804d5 100644 --- a/invenio_app_rdm/records_ui/views/filters.py +++ b/invenio_app_rdm/records_ui/views/filters.py @@ -160,12 +160,12 @@ def namespace_url(field): """Get custom field namespace url.""" namespace_array = field.split(":") namespace = namespace_array[0] - namespace_value = namespace_array[1] namespaces = current_app.config.get("RDM_NAMESPACES") if not namespaces.get(namespace): return None + namespace_value = namespace_array[1] return namespaces[namespace] + namespace_value diff --git a/tests/ui/conftest.py b/tests/ui/conftest.py index 2c7debb55..82ef7e593 100644 --- a/tests/ui/conftest.py +++ b/tests/ui/conftest.py @@ -50,6 +50,10 @@ def load(self, filepath): def app_config(app_config): """Create test app.""" app_config["WEBPACKEXT_MANIFEST_LOADER"] = MockManifestLoader + app_config["RDM_NAMESPACES"] = { + "test": "https://example.com/terms/#", + "empty": None, + } return app_config diff --git a/tests/ui/test_filters.py b/tests/ui/test_filters.py index 818f727ee..4ec1115e6 100644 --- a/tests/ui/test_filters.py +++ b/tests/ui/test_filters.py @@ -1,4 +1,4 @@ -from invenio_app_rdm.records_ui.views.filters import get_scheme_label +from invenio_app_rdm.records_ui.views.filters import get_scheme_label, namespace_url def test_get_scheme_label(app): @@ -8,3 +8,10 @@ def test_get_scheme_label(app): assert "arXiv" == get_scheme_label("arxiv") assert "Bibcode" == get_scheme_label("ads") + + +def test_namespace_url(app): + """Test namespace URL filters.""" + assert namespace_url("no_namespaced_field") is None + assert namespace_url("empty:field_name") is None + assert namespace_url("test:field_name") == "https://example.com/terms/#field_name"