view spec/util_datamanager_spec.lua @ 11687:153d2fdd97d3

net.server_epoll: Add way to enable TCP keeplives on all connections In case one wishes to enable this for all connections, not just c2s (not Direct TLS ones, because LuaSec) and s2s. Unclear what use these are, since they kick in after 2 hours of idle time.
author Kim Alvefur <zash@zash.se>
date Wed, 14 Jul 2021 22:09:39 +0200
parents 7c2ef5a1ec9c
children
line wrap: on
line source

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)