# HG changeset patch # User Kim Alvefur # Date 1537713035 -7200 # Node ID 83e4596c282442c7329ea4ff1c6946142207f4c6 # Parent 009dad867e521b6702c3c64e3ab9178b5c16e159 util.serialization: Add brief initial tests diff -r 009dad867e52 -r 83e4596c2824 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); +