diff options
Diffstat (limited to 'tests/mason-core/functional/table_spec.lua')
| -rw-r--r-- | tests/mason-core/functional/table_spec.lua | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/mason-core/functional/table_spec.lua b/tests/mason-core/functional/table_spec.lua new file mode 100644 index 00000000..012c981c --- /dev/null +++ b/tests/mason-core/functional/table_spec.lua @@ -0,0 +1,51 @@ +local _ = require "mason-core.functional" + +describe("functional: table", function() + it("retrieves property of table", function() + assert.equals("hello", _.prop("a", { a = "hello" })) + end) + + it("picks properties of table", function() + local function fn() end + assert.same( + { + ["key1"] = 1, + [fn] = 2, + }, + _.pick({ "key1", fn }, { + ["key1"] = 1, + [fn] = 2, + [3] = 3, + }) + ) + end) + + it("converts table to pairs", function() + assert.same( + _.sort_by(_.nth(1), { + { + "skies", + "cloudy", + }, + { + "temperature", + "20°", + }, + }), + _.sort_by(_.nth(1), _.to_pairs { skies = "cloudy", temperature = "20°" }) + ) + end) + + it("should invert tables", function() + assert.same( + { + val1 = "key1", + val2 = "key2", + }, + _.invert { + key1 = "val1", + key2 = "val2", + } + ) + end) +end) |
