diff options
Diffstat (limited to 'tests/mason-core/functional/table_spec.lua')
| -rw-r--r-- | tests/mason-core/functional/table_spec.lua | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/mason-core/functional/table_spec.lua b/tests/mason-core/functional/table_spec.lua index c897b5ca..357f7120 100644 --- a/tests/mason-core/functional/table_spec.lua +++ b/tests/mason-core/functional/table_spec.lua @@ -68,4 +68,47 @@ describe("functional: table", function() } ) end) + + it("should evolve table", function() + assert.same( + { + non_existent = nil, + firstname = "JOHN", + lastname = "DOE", + age = 42, + }, + _.evolve({ + non_existent = _.always "hello", + firstname = _.to_upper, + lastname = _.to_upper, + age = _.add(2), + }, { + firstname = "John", + lastname = "Doe", + age = 40, + }) + ) + end) + + it("should merge left", function() + assert.same( + { + firstname = "John", + lastname = "Doe", + }, + _.merge_left({ + firstname = "John", + }, { + firstname = "Jane", + lastname = "Doe", + }) + ) + end) + + it("should dissoc keys", function() + assert.same({ + a = "a", + c = "c", + }, _.dissoc("b", { a = "a", b = "b", c = "c" })) + end) end) |
