diff --git a/program/tests/test_reset_state.py b/program/tests/test_reset_state.py
new file mode 100644
index 0000000000000000000000000000000000000000..72c65e28e1991671e4fd892aee8dd7d81a47df66
--- /dev/null
+++ b/program/tests/test_reset_state.py
@@ -0,0 +1,79 @@
+import pytest
+
+pytestmark = pytest.mark.django_db
+
+
+def url(model_categories=None):
+    base_url = "/api/v1/debug/application-state/"
+
+    if model_categories:
+        return f"{base_url}?modelCategories={model_categories}"
+
+    return base_url
+
+
+def assert_value(response, key: str, value: int) -> None:
+    assert response.data[key] == value
+
+
+def test_reset_auth(admin_api_client, common_user1, cba):
+    response = admin_api_client.delete(url(model_categories="auth"))
+
+    assert response.status_code == 200
+
+    assert_value(response, "auth.User", 2)
+    assert_value(response, "program.CBA", 1)
+
+
+def test_reset_classifications(
+    admin_api_client,
+    category,
+    daily_rrule,
+    funding_category,
+    language,
+    link_type,
+    music_focus,
+    public_domain_license,
+    topic,
+    type_,
+):
+    response = admin_api_client.delete(url(model_categories="classifications"))
+
+    assert response.status_code == 200
+
+    assert_value(response, "program.Category", 1)
+    assert_value(response, "program.FundingCategory", 1)
+    assert_value(response, "program.Language", 1)
+    assert_value(response, "program.License", 1)
+    assert_value(response, "program.LinkType", 1)
+    assert_value(response, "program.MusicFocus", 1)
+    assert_value(response, "program.RRule", 1)
+    assert_value(response, "program.Topic", 1)
+    assert_value(response, "program.Type", 1)
+
+
+def test_reset_media(admin_api_client, image):
+    response = admin_api_client.delete(url(model_categories="media"))
+
+    assert response.status_code == 200
+
+    assert_value(response, "program.Image", 1)
+
+
+def test_reset_program(admin_api_client, show, once_schedule, show_once_timeslot):
+    response = admin_api_client.delete(url(model_categories="program"))
+
+    assert response.status_code == 200
+
+    assert_value(response, "program.Note", 1)
+    assert_value(response, "program.Schedule", 1)
+    assert_value(response, "program.Show", 1)
+    assert_value(response, "program.TimeSlot", 1)
+
+
+def test_reset_settings(admin_api_client, radio_settings):
+    response = admin_api_client.delete(url(model_categories="settings"))
+
+    assert response.status_code == 200
+
+    assert_value(response, "program.RadioSettings", 1)