diff --git a/test/mod-metadata-reader-factory.test.ts b/test/mod-metadata-reader-factory.test.ts
new file mode 100644
index 0000000..14de1d4
--- /dev/null
+++ b/test/mod-metadata-reader-factory.test.ts
@@ -0,0 +1,18 @@
+import { describe, test, expect } from "@jest/globals";
+import ModLoaderType from "../src/metadata/mod-loader-type";
+import ModMetadataReaderFactory from "../src/metadata/mod-metadata-reader-factory";
+
+describe("ModMetadataReaderFactory.create", () => {
+    test("factory can create metadata reader for every ModLoaderType value", () => {
+        const factory = new ModMetadataReaderFactory();
+        for (const target of ModLoaderType.getValues()) {
+            const reader = factory.create(target);
+            expect(reader).toHaveProperty("readMetadata");
+        }
+    });
+
+    test("the method throws on invalid ModLoaderType value", () => {
+        const factory = new ModMetadataReaderFactory();
+        expect(() => factory.create(-1)).toThrow();
+    });
+});