diff --git a/tests/sysrepo_system-ietfsystem.cpp b/tests/sysrepo_system-ietfsystem.cpp
new file mode 100644
index 0000000..04add24
--- /dev/null
+++ b/tests/sysrepo_system-ietfsystem.cpp
@@ -0,0 +1,72 @@
+#include "trompeloeil_doctest.h"
+#include "pretty_printers.h"
+#include "system/IETFSystem.h"
+#include "test_log_setup.h"
+#include "test_sysrepo_helpers.h"
+#include "tests/configure.cmake.h"
+
+using namespace std::literals;
+
+TEST_CASE("Sysrepo ietf-system")
+{
+    trompeloeil::sequence seq1;
+
+    TEST_SYSREPO_INIT_LOGS;
+    TEST_SYSREPO_INIT;
+
+    SECTION("Test system-state")
+    {
+        TEST_SYSREPO_INIT_CLIENT;
+        static const auto modulePrefix = "/ietf-system:system-state"s;
+
+        SECTION("Valid data")
+        {
+            std::filesystem::path file;
+            std::map<std::string, std::string> expected;
+
+            SECTION("Real data")
+            {
+                file = CMAKE_CURRENT_SOURCE_DIR "/tests/system/os-release";
+                expected = {
+                    {"/clock", ""},
+                    {"/platform", ""},
+                    {"/platform/os-name", "CzechLight"},
+                    {"/platform/os-release", "v4-105-g8294175-dirty"},
+                    {"/platform/os-version", "v4-105-g8294175-dirty"},
+                };
+            }
+
+            SECTION("Missing =")
+            {
+                file = CMAKE_CURRENT_SOURCE_DIR "/tests/system/missing-equal";
+                expected = {
+                    {"/clock", ""},
+                    {"/platform", ""},
+                    {"/platform/os-name", ""},
+                    {"/platform/os-release", ""},
+                    {"/platform/os-version", ""},
+                };
+            }
+
+            SECTION("Empty values")
+            {
+                file = CMAKE_CURRENT_SOURCE_DIR "/tests/system/empty-values";
+                expected = {
+                    {"/clock", ""},
+                    {"/platform", ""},
+                    {"/platform/os-name", ""},
+                    {"/platform/os-release", ""},
+                    {"/platform/os-version", ""},
+                };
+            }
+
+            auto sysrepo = std::make_shared<velia::system::IETFSystem>(srSess, file);
+            REQUIRE(dataFromSysrepo(client, modulePrefix, SR_DS_OPERATIONAL) == expected);
+        }
+
+        SECTION("Invalid data (missing VERSION and NAME keys)")
+        {
+            REQUIRE_THROWS_AS(std::make_shared<velia::system::IETFSystem>(srSess, CMAKE_CURRENT_SOURCE_DIR "/tests/system/missing-keys"), std::out_of_range);
+        }
+    }
+}
