diff --git a/greg/tests/models/test_sponsor.py b/greg/tests/models/test_sponsor.py
index 81b95701d304c2d32bc5e413a83ddc00f46fab8b..b95330722bb4a51108756a25950eecdaf1fe6732 100644
--- a/greg/tests/models/test_sponsor.py
+++ b/greg/tests/models/test_sponsor.py
@@ -71,3 +71,19 @@ def test_get_allowed_loop(loop_sponsor, looped_units, unit_foo):
     units = loop_sponsor.get_allowed_units()
     expected = [i.id for i in looped_units] + [unit_foo.id]
     assert [x.id for x in units] == expected
+
+
+@pytest.mark.django_db
+def test_get_allowed(sponsor_foo, unit1, unit2):
+    """Verify that hierarchical_access controls access to allowed units"""
+    spu = sponsor_ou_relation(sponsor=sponsor_foo, organizational_unit=unit1)
+    unit2.parent = unit1
+    unit2.save()
+
+    # Without hier access only get unit connected to
+    assert sponsor_foo.get_allowed_units() == {unit1}
+
+    # With hier access also get units below
+    spu.hierarchical_access = True
+    spu.save()
+    assert sponsor_foo.get_allowed_units() == {unit1, unit2}
diff --git a/gregui/tests/api/views/test_ou.py b/gregui/tests/api/views/test_ou.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e30b1c3f8a7e69fe599f2913eb6ff35347c3658
--- /dev/null
+++ b/gregui/tests/api/views/test_ou.py
@@ -0,0 +1,35 @@
+import pytest
+from django.urls import reverse
+from rest_framework import status
+
+from greg.models import OrganizationalUnit, SponsorOrganizationalUnit
+
+
+@pytest.mark.django_db
+def test_hierarchy_access_sponsor_ous(client, user_sponsor, unit_bar, log_in):
+    """
+    Verify that setting hierarchical access makes sub units visible for
+    sponsors.
+    """
+    url = reverse("gregui-v1:ou-list")
+    log_in(user_sponsor)
+
+    # add extra unit not visible without hierarchical access
+    unit_bar.parent = OrganizationalUnit.objects.get(pk=1)
+    unit_bar.save()
+
+    # Only direct connection visible
+    response = client.get(url)
+    assert response.status_code == status.HTTP_200_OK
+    assert response.json() == [{"id": 1, "en": "Foo EN", "nb": "Foo NB"}]
+
+    # Tree visible with hierarchy access
+    sou = SponsorOrganizationalUnit.objects.get(pk=1)
+    sou.hierarchical_access = True
+    sou.save()
+    response = client.get(url)
+    assert response.status_code == status.HTTP_200_OK
+    assert response.json() == [
+        {"id": 1, "en": "Foo EN", "nb": "Foo NB"},
+        {"id": 2, "en": "Bar EN", "nb": "Bar NB"},
+    ]