diff --git a/tests/yang.cpp b/tests/yang.cpp
index 3c658b3..009465b 100644
--- a/tests/yang.cpp
+++ b/tests/yang.cpp
@@ -37,12 +37,28 @@
 }
 )";
 
+const char* included_submodule = R"(
+submodule sub-module {
+    yang-version 1.1;
+
+    belongs-to example-schema {
+        prefix sub;
+    }
+
+    leaf subLeaf {
+        type string;
+    }
+}
+)";
+
 const char* example_schema = R"(
 module example-schema {
     yang-version 1.1;
     namespace "http://example.com/example-sports";
     prefix coze;
 
+    include sub-module;
+
     identity drink {
     }
 
@@ -412,11 +428,21 @@
 
 TEST_CASE("yangschema")
 {
+    using namespace std::string_literals;
     using namespace std::string_view_literals;
     YangSchema ys;
-    ys.registerModuleCallback([]([[maybe_unused]] auto modName, auto, auto, auto) {
-        assert("example-schema"sv == modName);
-        return example_schema;
+    ys.registerModuleCallback([]([[maybe_unused]] auto modName, auto, auto subModule, auto) {
+        if (modName != "example-schema"sv) {
+            throw std::logic_error("unrecognized module "s + modName);
+        }
+        if (subModule == nullptr) {
+            return example_schema;
+        }
+        if (subModule == "sub-module"sv) {
+            return included_submodule;
+        }
+
+        throw std::logic_error("unrecognized submodule "s + subModule);
     });
     ys.addSchemaString(second_schema);
 
@@ -817,7 +843,8 @@
                         {"example-schema"s, "obsoleteLeafWithDeprecatedType"},
                         {"example-schema"s, "obsoleteLeafWithObsoleteType"},
                         {"example-schema"s, "myRpc"},
-                        {"example-schema"s, "systemStats"}};
+                        {"example-schema"s, "systemStats"},
+                        {"example-schema"s, "subLeaf"}};
                 }
 
                 SECTION("example-schema:a")
@@ -900,7 +927,8 @@
                         {"example-schema"s, "systemStats"},
                         {"example-schema"s, "twoKeyList"},
                         {"example-schema"s, "wavelength"},
-                        {"example-schema"s, "zero"}
+                        {"example-schema"s, "zero"},
+                        {"example-schema"s, "subLeaf"}
                     };
                     expectedRecursive = {
                         {boost::none, "/example-schema:_list"},
@@ -961,6 +989,7 @@
                         {boost::none, "/example-schema:portSettings/port"},
                         {boost::none, "/example-schema:systemStats"},
                         {boost::none, "/example-schema:systemStats/upTime"},
+                        {boost::none, "/example-schema:subLeaf"},
                         {boost::none, "/example-schema:twoKeyList"},
                         {boost::none, "/example-schema:twoKeyList/name"},
                         {boost::none, "/example-schema:twoKeyList/number"},
@@ -1013,6 +1042,12 @@
                 expected = yang::NodeTypes::List;
             }
 
+            SECTION("subLeaf")
+            {
+                path.m_nodes.push_back(schemaNode_(module_{"example-schema"}, leaf_("subLeaf")));
+                expected = yang::NodeTypes::Leaf;
+            }
+
             REQUIRE(ys.nodeType(pathToSchemaString(path, Prefixes::WhenNeeded)) == expected);
         }
 
