From 976aa4fbee8a070f362cab6f6ec84e9251a90cf9 Mon Sep 17 00:00:00 2001 From: William Boman Date: Fri, 8 Jul 2022 18:34:38 +0200 Subject: refactor: add mason-schemas and mason-core modules (#29) * refactor: add mason-schemas and move generated filetype map to mason-lspconfig * refactor: add mason-core module --- tests/mason-core/functional/logic_spec.lua | 57 ++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/mason-core/functional/logic_spec.lua (limited to 'tests/mason-core/functional/logic_spec.lua') diff --git a/tests/mason-core/functional/logic_spec.lua b/tests/mason-core/functional/logic_spec.lua new file mode 100644 index 00000000..7c795443 --- /dev/null +++ b/tests/mason-core/functional/logic_spec.lua @@ -0,0 +1,57 @@ +local spy = require "luassert.spy" +local _ = require "mason-core.functional" + +describe("functional: logic", function() + it("should check that all_pass checks that all predicates pass", function() + local is_waldo = _.equals "waldo" + assert.is_true(_.all_pass { _.T, _.T, is_waldo, _.T } "waldo") + assert.is_false(_.all_pass { _.T, _.T, is_waldo, _.F } "waldo") + assert.is_false(_.all_pass { _.T, _.T, is_waldo, _.T } "waldina") + end) + + it("should check that any_pass checks that any predicates pass", function() + local is_waldo = _.equals "waldo" + local is_waldina = _.equals "waldina" + local is_luigi = _.equals "luigi" + + assert.is_true(_.any_pass { is_waldo, is_waldina } "waldo") + assert.is_false(_.any_pass { is_waldina, is_luigi } "waldo") + assert.is_true(_.any_pass { is_waldina, is_luigi } "waldina") + end) + + it("should branch if_else", function() + local a = spy.new() + local b = spy.new() + _.if_else(_.T, a, b) "a" + _.if_else(_.F, a, b) "b" + assert.spy(a).was_called(1) + assert.spy(a).was_called_with "a" + assert.spy(b).was_called(1) + assert.spy(b).was_called_with "b" + end) + + it("should flip booleans", function() + assert.is_true(_.is_not(false)) + assert.is_false(_.is_not(true)) + end) + + it("should resolve correct cond", function() + local planetary_object = _.cond { + { + _.equals "Moon!", + _.format "to the %s", + }, + { + _.equals "World!", + _.format "Hello %s", + }, + } + assert.equals("Hello World!", planetary_object "World!") + assert.equals("to the Moon!", planetary_object "Moon!") + end) + + it("should give complements", function() + assert.is_true(_.complement(_.is_nil, "not nil")) + assert.is_false(_.complement(_.is_nil, nil)) + end) +end) -- cgit v1.2.3-70-g09d2