diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e831c7b91b76aa947a0f8e9f9207188321556fa5..e3df1a004ff1f22e790d211b55289aa8ec528ddf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,7 +21,7 @@ cache:
 before_script:
   - cd backend
   - pip install -r requirements_dev.txt
-  - pip install .
+  - pip install -e .
 
 test-backend:
   stage: lint_test_coverage_backend
diff --git a/backend/metagenedb/apps/accounts/test_auth.py b/backend/metagenedb/apps/accounts/tests.py
similarity index 58%
rename from backend/metagenedb/apps/accounts/test_auth.py
rename to backend/metagenedb/apps/accounts/tests.py
index fc240e340c7e6a4ab6c286107410bfbf3d089add..39171ec8fb7e0f19465f5cefacd9295515440df0 100644
--- a/backend/metagenedb/apps/accounts/test_auth.py
+++ b/backend/metagenedb/apps/accounts/tests.py
@@ -4,6 +4,7 @@ from rest_framework import status
 
 
 from django.contrib.auth.models import User
+from rest_framework_jwt.settings import api_settings
 
 
 class TestAccounts(APITestCase):
@@ -26,3 +27,22 @@ class TestAccounts(APITestCase):
         resp = self.client.post(url, {'username': 'user', 'password': 'pass'}, format='json')
         self.assertEqual(resp.status_code, status.HTTP_200_OK)
         self.assertTrue('token' in resp.data)
+
+    def test_verify_jwt(self):
+
+        jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
+        jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
+
+        user = User.objects.create_user(username='user', email='user@foo.com', password='pass')
+        user.is_active = True
+        user.save()
+        payload = jwt_payload_handler(user)
+        token = jwt_encode_handler(payload)
+
+        verify_url = reverse('api-jwt-verify')
+        credentials = {
+            'token': token
+        }
+
+        resp = self.client.post(verify_url, credentials, format='json')
+        self.assertEqual(resp.status_code, status.HTTP_200_OK)
diff --git a/backend/metagenedb/apps/catalog/models/test_views.py b/backend/metagenedb/apps/catalog/models/test_views.py
new file mode 100644
index 0000000000000000000000000000000000000000..56394e9668e65fc24f9a52f5d6f6fa96c13bccb9
--- /dev/null
+++ b/backend/metagenedb/apps/catalog/models/test_views.py
@@ -0,0 +1,36 @@
+from django.contrib.auth.models import User
+from django.test import TestCase
+from django.urls import reverse
+
+from rest_framework import status
+from rest_framework_jwt.settings import api_settings
+
+
+class TestGenes(TestCase):
+    """Post Tests"""
+
+    def test_get_genes_no_auth(self):
+        """
+        Unauthenticated users should not be able to access genes via APIListView
+        """
+        url = reverse('genes')
+        resp = self.client.get(url)
+        self.assertEqual(resp.status_code, status.HTTP_401_UNAUTHORIZED)
+
+    def test_get_genes_auth(self):
+        """
+        Authenticated users should be able to access genes via APIListView
+        """
+
+        jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
+        jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
+
+        user = User.objects.create_user(username='user', email='user@foo.com', password='pass')
+        user.is_active = True
+        user.save()
+        payload = jwt_payload_handler(user)
+        token = jwt_encode_handler(payload)
+
+        url = reverse('genes')
+        resp = self.client.get(url, format='json', HTTP_AUTHORIZATION=f"JWT {token}")
+        self.assertEqual(resp.status_code, status.HTTP_200_OK)
diff --git a/backend/metagenedb/apps/catalog/urls.py b/backend/metagenedb/apps/catalog/urls.py
index 5ffcf0a764332f924ac29e78c6f0d48f89061295..a25b56c28ce31a08fd0ffb65b3201066662f65d6 100644
--- a/backend/metagenedb/apps/catalog/urls.py
+++ b/backend/metagenedb/apps/catalog/urls.py
@@ -4,6 +4,6 @@ from . import views
 
 urlpatterns = [
     path('', views.index, name='index'),
-    re_path(r'^api/genes/$', views.gene_list),
+    re_path(r'^api/genes$', views.gene_list, name='genes'),
     re_path(r'^api/genes/(?P<gene_id>.*)$', views.gene_detail),
 ]