Diff

spec/util_serialization_spec.lua @ 9485:c667887d78ad

util.serialization: Simpler metatable pre-processing It was too difficult to describe what it did.
author Kim Alvefur <zash@zash.se>
date Fri, 12 Oct 2018 00:13:24 +0200
parent 9482:8791bfa3984a
child 9566:dad29508d0f2
line wrap: on
line diff
--- a/spec/util_serialization_spec.lua	Thu Oct 11 23:00:45 2018 +0200
+++ b/spec/util_serialization_spec.lua	Fri Oct 12 00:13:24 2018 +0200
@@ -44,6 +44,14 @@
 			test({foo={[100]={{"bar"},{baz=1}}}});
 			test({["goto"] = {["function"]={["do"]="keywords"}}});
 		end);
+
+		it("can serialize with metatables", function ()
+			local s = serialization.new({ freeze = true });
+			local t = setmetatable({ a = "hi" }, { __freeze = function (t) return { t.a } end });
+			local rt = serialization.deserialize(s(t));
+			assert.same({"hi"}, rt);
+		end);
+
 	end);
 end);