# HG changeset patch
# User Kim Alvefur <zash@zash.se>
# Date 1612538046 -3600
# Node ID 618ab9bba1c20119c41a83a0a8a9898ee3dac2b4
# Parent  5eb817cdd5cd151d9f11506996dfa3d7a08da813
util.cache: Add test for :table (fails on Lua 5.1)

diff -r 5eb817cdd5cd -r 618ab9bba1c2 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);