util.cache: Add test for :table (fails on Lua 5.1)
authorKim Alvefur <zash@zash.se>
Fri, 05 Feb 2021 16:14:06 +0100
changeset 11370 618ab9bba1c2
parent 11369 5eb817cdd5cd
child 11371 9525c4b4e5de
util.cache: Add test for :table (fails on Lua 5.1)
spec/util_cache_spec.lua
--- a/spec/util_cache_spec.lua	Fri Feb 05 15:52:46 2021 +0100
+++ b/spec/util_cache_spec.lua	Fri Feb 05 16:14:06 2021 +0100
@@ -311,6 +311,30 @@
 
 			expect_kv("e", 5, c5:head());
 			expect_kv("c", 3, c5:tail());
+
+		end);
+
+		(_VERSION=="Lua 5.1" and pending or it)(":table works", function ()
+			local t = cache.new(3):table();
+			assert.is.table(t);
+			t["a"] = "1";
+			assert.are.equal(t["a"], "1");
+			t["b"] = "2";
+			assert.are.equal(t["b"], "2");
+			t["c"] = "3";
+			assert.are.equal(t["c"], "3");
+			t["d"] = "4";
+			assert.are.equal(t["d"], "4");
+			assert.are.equal(t["a"], nil);
+
+				local i = spy.new(function () end);
+				for k, v in pairs(t) do
+					i(k,v)
+				end
+				assert.spy(i).was_called();
+				assert.spy(i).was_called_with("b", "2");
+				assert.spy(i).was_called_with("c", "3");
+				assert.spy(i).was_called_with("d", "4");
 		end);
 	end);
 end);