diff --git a/server/tests/test_db.py b/server/tests/test_db.py
index 568c1c479fdf6f1edaaabf6765171613ae4faeb5..0e0287463509c564eb681c4a8bbebee8f834c03e 100644
--- a/server/tests/test_db.py
+++ b/server/tests/test_db.py
@@ -3,10 +3,41 @@ This file tests the database controller functions.
 """
 
 import app.database.controller as dbc
-from app.database.models import City, Code, Competition, Media, MediaType, Role, User
+from app.database.models import City, Code, Competition, Media, MediaType, Role, Slide, User
 
 from tests import app, client, db
-from tests.test_helpers import add_default_values, assert_exists, assert_insert_fail, assert_slide_order, delete
+from tests.test_helpers import add_default_values, assert_all_slide_orders, assert_should_fail, assert_slide_order
+
+
+def test_default_values(client):
+    add_default_values()
+
+    # Basic funcs
+    def func(val):
+        assert val
+
+    # Testing assert_should_fail when it should and should not fail
+    assert_should_fail(func, False)
+
+    try:
+        assert_should_fail(func, True)
+    except:
+        pass
+    else:
+        assert False
+
+    # All slides should be in order
+    assert_all_slide_orders()
+
+    # Slides are moved so they are not in correct order
+    item_slides = dbc.get.all(Slide)
+    for item_slide in item_slides:
+        item_slide.order += 10
+        db.session.add(item_slide)
+    db.session.commit()
+
+    # The slides are not in order so the assert should fail
+    assert_should_fail(assert_all_slide_orders)
 
 
 def test_user(client):
@@ -91,6 +122,8 @@ def test_copy(client):
     dbc.delete.team(item_team_2)
     assert len(dbc.get.all(Code)) == 3
 
+    assert_all_slide_orders()
+
 
 def check_slides_copy(item_slide_original, item_slide_copy, num_slides, order):
     """ Checks that two slides are correct copies of each other. Looks big but is quite fast. """
@@ -277,6 +310,7 @@ def test_question(client):
     )
     assert item_q1 == item_q2[0]
 
+    assert_all_slide_orders()
 
 def test_slide(client):
     add_default_values()
diff --git a/server/tests/test_helpers.py b/server/tests/test_helpers.py
index 7d5625385f01f81cc326bca9d5114322ad5f52e0..c3a73754c70aa492c6211ccba158a0cf209efab9 100644
--- a/server/tests/test_helpers.py
+++ b/server/tests/test_helpers.py
@@ -3,7 +3,7 @@ import json
 import app.core.http_codes as codes
 import app.database.controller as dbc
 from app.core import db
-from app.database.models import City, Code, Role
+from app.database.models import City, Code, Role, Slide
 
 
 def add_default_values():
@@ -161,3 +161,31 @@ def assert_slide_order(item_comp, correct_order):
     """
     for slide, order in zip(item_comp.slides, correct_order):
         assert slide.order == order
+
+
+def assert_all_slide_orders():
+    """ Checks that all slides are in order. """
+
+    # Get slides in competition order and slide order
+    item_slides = Slide.query.order_by(Slide.competition_id).order_by(Slide.order).all()
+
+    order = 0
+    competition_id = 1
+    for item_slide in item_slides:
+        if item_slide.competition_id != competition_id:
+            order = 0
+            competition_id = item_slide.competition_id
+
+        assert item_slide.order == order
+        order += 1
+
+
+def assert_should_fail(func, *args):
+    """ Runs the function which should raise an exception. """
+
+    try:
+        func(*args)
+    except:
+        pass  # Assert failed, as it should
+    else:
+        assert False  # Assertion didn't fail