util.serialization: Add brief initial tests
authorKim Alvefur <zash@zash.se>
Sun, 23 Sep 2018 16:30:35 +0200
changeset 9345 83e4596c2824
parent 9344 009dad867e52
child 9346 e767da06399d
util.serialization: Add brief initial tests
spec/util_serialization_spec.lua
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spec/util_serialization_spec.lua	Sun Sep 23 16:30:35 2018 +0200
@@ -0,0 +1,33 @@
+local serialization = require "util.serialization";
+local envload = require "util.envload";
+
+describe("util.serialization", function ()
+	describe("serialize", function ()
+		it("makes a string", function ()
+			assert.is_string(serialization.serialize({}));
+			assert.is_string(serialization.serialize(nil));
+			assert.is_string(serialization.serialize(1));
+			assert.is_string(serialization.serialize(true));
+			assert.is_string(serialization.serialize(function () end));
+		end);
+
+		it("roundtrips", function ()
+			local function test(data)
+				local serialized = serialization.serialize(data);
+				assert.is_string(serialized);
+				local chunk, err = envload.envload("return ("..serialized..");");
+				assert.is_function(chunk, err);
+				assert.same(data, chunk());
+			end
+
+			test({});
+			test({hello="world"});
+			test("foobar")
+			test("\0\1\2\3");
+			test("nödåtgärd");
+			test({1,2,3,4});
+			test({foo={[100]={{"bar"},{baz=1}}}});
+		end);
+	end);
+end);
+