diff --git a/tests/test_build.py b/tests/test_build.py
index 8af46ae12817bd9a4e626bf5723bc1a304944827..bd1be0830a71475b41b62261ce686155ef7a1c92 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -539,6 +539,37 @@ def test_expand_db_files(wrapper: Wrapper):
     )
 
 
+def test_substitution_template_priority(wrapper: Wrapper):
+    """Test that the automated template/substitution file expansion works."""
+
+    wrapper.add_var_to_module_makefile("TMPS", "a.template")
+    wrapper.add_var_to_module_makefile("SUBS", "a.substitutions")
+
+    template_file = wrapper.module_dir / "a.template"
+    template_file_contents = "record (ai, $(FOO)) {}"
+    template_file.write_text(template_file_contents)
+
+    substitution_file = wrapper.module_dir / "a.substitutions"
+    substitution_file.write_text(
+        """file "a.template"
+{
+  pattern { FOO }
+          { "$(BAR)" }
+}
+"""
+    )
+
+    base_version = wrapper.get_env_var("EPICS_VERSION_NUMBER")
+    common_dir = wrapper.module_dir / f"O.{base_version}_Common"
+
+    rc, *_ = wrapper.run_make("db_internal")
+    assert rc == 0
+
+    expanded_template_file = common_dir / "a.db"
+    assert "BAR" in expanded_template_file.read_text()
+    assert "FOO" not in expanded_template_file.read_text()
+
+
 @pytest.mark.parametrize(
     "installed_archs, param, expected",
     [