diff --git a/AKDashboard/tests.py b/AKDashboard/tests.py
index a39b155ac3ee946fb97efafe6ecbb42f571cd7ad..7d695f03f49091e5608b3f9ec4b0c5ced11f2b83 100644
--- a/AKDashboard/tests.py
+++ b/AKDashboard/tests.py
@@ -1 +1,52 @@
-# Create your tests here.
+import pytz
+from django.test import TestCase
+from django.urls import reverse
+from django.utils.timezone import now
+
+from AKModel.models import Event, AK, AKCategory
+
+
+class DashboardTests(TestCase):
+    @classmethod
+    def setUpTestData(cls):
+        super().setUpTestData()
+        cls.event = Event.objects.create(
+            name="Test Event",
+            slug="test",
+            timezone=pytz.utc,
+            start=now(),
+            end=now(),
+            active=True,
+        )
+        cls.default_category = AKCategory.objects.create(
+            name="Test Category",
+            event=cls.event,
+        )
+
+    def test_dashboard_view(self):
+        url = reverse('dashboard:dashboard_event', kwargs={"slug": self.event.slug})
+        response = self.client.get(url)
+        self.assertEqual(response.status_code, 200)
+
+    def test_nonexistent_dashboard_view(self):
+        url = reverse('dashboard:dashboard_event', kwargs={"slug": "nonexistent-event"})
+        response = self.client.get(url)
+        self.assertEqual(response.status_code, 404)
+
+    def test_history(self):
+        url = reverse('dashboard:dashboard_event', kwargs={"slug": self.event.slug})
+
+        # History should be empty
+        response = self.client.get(url)
+        self.assertQuerysetEqual(response.context["recent_changes"], [])
+
+        AK.objects.create(
+            name="Test AK",
+            category=self.default_category,
+            event=self.event,
+        )
+
+        # History should now contain one AK (Test AK)
+        response = self.client.get(url)
+        self.assertEqual(len(response.context["recent_changes"]), 1)
+        self.assertEqual(response.context["recent_changes"][0]['text'], "New AK: Test AK.")