File

spec/util_datamanager_spec.lua @ 13547:d6545c533ce2 0.12

mod_bookmarks: Clarify log messages on failure to sync to modern PEP bookmarks Previously the error messages said that it failed to "publish" to PEP, but sometimes a sync involves removing items, which can be confusing. The log was also the same for both legacy PEP and private XML bookmarks. Having different log messages makes it easier to debug the cause and location of any sync errors.
author Matthew Wild <mwild1@gmail.com>
date Fri, 08 Nov 2024 10:28:29 +0000
parent 11370:7c2ef5a1ec9c
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)