Diff

spec/util_datamanager_spec.lua @ 11370:7c2ef5a1ec9c

util.datamanager: Add basic tests Test all the things! Somewhat covered by the storagemanager tests, but we don't currently don't have that automated as it needs SQL engines.
author Kim Alvefur <zash@zash.se>
date Tue, 09 Feb 2021 23:25:30 +0100
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spec/util_datamanager_spec.lua	Tue Feb 09 23:25:30 2021 +0100
@@ -0,0 +1,76 @@
+describe("util.datamanager", function()
+	local dm;
+	setup(function()
+		dm = require "util.datamanager";
+		dm.set_data_path("./data");
+	end);
+
+	describe("keyvalue", function()
+		local data = {hello = "world"};
+
+		do
+			local ok, err = dm.store("keyval-user", "datamanager.test", "testdata", data);
+			assert.truthy(ok, err);
+		end
+
+		do
+			local read, err = dm.load("keyval-user", "datamanager.test", "testdata")
+			assert.same(data, read, err);
+		end
+
+		do
+			local ok, err = dm.store("keyval-user", "datamanager.test", "testdata", nil);
+			assert.truthy(ok, err);
+		end
+
+		do
+			local read, err = dm.load("keyval-user", "datamanager.test", "testdata")
+			assert.is_nil(read, err);
+		end
+	end)
+
+	describe("lists", function()
+		do
+			local ok, err = dm.list_store("list-user", "datamanager.test", "testdata", {});
+			assert.truthy(ok, err);
+		end
+
+		do
+			local nothing, err = dm.list_load("list-user", "datamanager.test", "testdata");
+			assert.is_nil(nothing, err);
+			assert.is_nil(err);
+		end
+
+		do
+			local ok, err = dm.list_append("list-user", "datamanager.test", "testdata", {id = 1});
+			assert.truthy(ok, err);
+		end
+
+		do
+			local ok, err = dm.list_append("list-user", "datamanager.test", "testdata", {id = 2});
+			assert.truthy(ok, err);
+		end
+
+		do
+			local ok, err = dm.list_append("list-user", "datamanager.test", "testdata", {id = 3});
+			assert.truthy(ok, err);
+		end
+
+		do
+			local list, err = dm.list_load("list-user", "datamanager.test", "testdata");
+			assert.same(list, {{id = 1}; {id = 2}; {id = 3}}, err);
+		end
+
+		do
+			local ok, err = dm.list_store("list-user", "datamanager.test", "testdata", {});
+			assert.truthy(ok, err);
+		end
+
+		do
+			local nothing, err = dm.list_load("list-user", "datamanager.test", "testdata");
+			assert.is_nil(nothing, err);
+			assert.is_nil(err);
+		end
+
+	end)
+end)