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.
This commit is contained in:
Kim Alvefur 2021-02-09 23:25:30 +01:00
parent ac2d84a47b
commit cb489d06e1

View file

@ -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)