diff options
| author | William Boman <william@redwill.se> | 2022-07-06 19:41:43 +0200 |
|---|---|---|
| committer | William Boman <william@redwill.se> | 2022-07-07 00:39:59 +0200 |
| commit | 5f634e0c37e723fc0c33e06b4fd5c2180178db40 (patch) | |
| tree | fa4f09363adefa8259e23e4d1ea036db628b1243 /tests/core/functional | |
| parent | feat(health): use stderr for java version, also check for JAVA_HOME (#765) (diff) | |
| download | mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.gz mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.bz2 mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.lz mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.xz mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.zst mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.zip | |
mason.nvim
Diffstat (limited to 'tests/core/functional')
| -rw-r--r-- | tests/core/functional/data_spec.lua | 2 | ||||
| -rw-r--r-- | tests/core/functional/function_spec.lua | 2 | ||||
| -rw-r--r-- | tests/core/functional/list_spec.lua | 70 | ||||
| -rw-r--r-- | tests/core/functional/logic_spec.lua | 16 | ||||
| -rw-r--r-- | tests/core/functional/number_spec.lua | 2 | ||||
| -rw-r--r-- | tests/core/functional/relation_spec.lua | 2 | ||||
| -rw-r--r-- | tests/core/functional/string_spec.lua | 19 | ||||
| -rw-r--r-- | tests/core/functional/table_spec.lua | 46 | ||||
| -rw-r--r-- | tests/core/functional/type_spec.lua | 2 |
9 files changed, 149 insertions, 12 deletions
diff --git a/tests/core/functional/data_spec.lua b/tests/core/functional/data_spec.lua index b89176e2..cdc26809 100644 --- a/tests/core/functional/data_spec.lua +++ b/tests/core/functional/data_spec.lua @@ -1,4 +1,4 @@ -local _ = require "nvim-lsp-installer.core.functional" +local _ = require "mason.core.functional" describe("functional: data", function() it("creates enums", function() diff --git a/tests/core/functional/function_spec.lua b/tests/core/functional/function_spec.lua index 4b9cbba6..21951dc3 100644 --- a/tests/core/functional/function_spec.lua +++ b/tests/core/functional/function_spec.lua @@ -1,6 +1,6 @@ local spy = require "luassert.spy" local match = require "luassert.match" -local _ = require "nvim-lsp-installer.core.functional" +local _ = require "mason.core.functional" describe("functional: function", function() it("curries functions", function() diff --git a/tests/core/functional/list_spec.lua b/tests/core/functional/list_spec.lua index 21aa4e69..a03fee68 100644 --- a/tests/core/functional/list_spec.lua +++ b/tests/core/functional/list_spec.lua @@ -1,5 +1,6 @@ local spy = require "luassert.spy" -local _ = require "nvim-lsp-installer.core.functional" +local _ = require "mason.core.functional" +local Optional = require "mason.core.optional" describe("functional: list", function() it("should produce list without nils", function() @@ -41,6 +42,24 @@ describe("functional: list", function() assert.same({ "BLUE", "YELLOW", "RED" }, colors) end) + it("filter_map over list", function() + local colors = { "BROWN", "BLUE", "YELLOW", "GREEN", "CYAN" } + assert.same( + { + "BROWN EYES", + "BLUE EYES", + "GREEN EYES", + }, + _.filter_map(function(color) + if _.any_pass({ _.equals "BROWN", _.equals "BLUE", _.equals "GREEN" }, color) then + return Optional.of(("%s EYES"):format(color)) + else + return Optional.empty() + end + end, colors) + ) + end) + it("finds first item that fulfills predicate", function() local predicate = spy.new(function(item) return item == "Waldo" @@ -122,4 +141,53 @@ describe("functional: list", function() assert.equals(1, _.length { "" }) assert.equals(4, _.length "fire") end) + + it("should sort by comparator", function() + local list = { + { + name = "William", + }, + { + name = "Boman", + }, + } + assert.same({ + { + name = "Boman", + }, + { + name = "William", + }, + }, _.sort_by(_.prop "name", list)) + + -- Should not mutate original list + assert.same({ + { + name = "William", + }, + { + name = "Boman", + }, + }, list) + end) + + it("should append to list", function() + local list = { "Earth", "Wind" } + assert.same({ "Earth", "Wind", { "Fire" } }, _.append({ "Fire" }, list)) + + -- Does not mutate original list + assert.same({ "Earth", "Wind" }, list) + end) + + it("should prepend to list", function() + local list = { "Fire" } + assert.same({ { "Earth", "Wind" }, "Fire" }, _.prepend({ "Earth", "Wind" }, list)) + + -- Does not mutate original list + assert.same({ "Fire" }, list) + end) + + it("joins lists", function() + assert.equals("Hello, John", _.join(", ", { "Hello", "John" })) + end) end) diff --git a/tests/core/functional/logic_spec.lua b/tests/core/functional/logic_spec.lua index 291d8979..073ca52c 100644 --- a/tests/core/functional/logic_spec.lua +++ b/tests/core/functional/logic_spec.lua @@ -1,16 +1,24 @@ local spy = require "luassert.spy" -local _ = require "nvim-lsp-installer.core.functional" +local _ = require "mason.core.functional" describe("functional: logic", function() it("should check that all_pass checks that all predicates pass", function() - local is_waldo = function(i) - return i == "waldo" - end + 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() diff --git a/tests/core/functional/number_spec.lua b/tests/core/functional/number_spec.lua index 644547fb..f23156fe 100644 --- a/tests/core/functional/number_spec.lua +++ b/tests/core/functional/number_spec.lua @@ -1,4 +1,4 @@ -local _ = require "nvim-lsp-installer.core.functional" +local _ = require "mason.core.functional" describe("functional: number", function() it("should negate numbers", function() diff --git a/tests/core/functional/relation_spec.lua b/tests/core/functional/relation_spec.lua index 41325cf2..4c92ffb5 100644 --- a/tests/core/functional/relation_spec.lua +++ b/tests/core/functional/relation_spec.lua @@ -1,4 +1,4 @@ -local _ = require "nvim-lsp-installer.core.functional" +local _ = require "mason.core.functional" describe("functional: relation", function() it("should check equality", function() diff --git a/tests/core/functional/string_spec.lua b/tests/core/functional/string_spec.lua index cbee0617..4f9f4722 100644 --- a/tests/core/functional/string_spec.lua +++ b/tests/core/functional/string_spec.lua @@ -1,4 +1,4 @@ -local _ = require "nvim-lsp-installer.core.functional" +local _ = require "mason.core.functional" describe("functional: string", function() it("matches string patterns", function() @@ -23,4 +23,21 @@ describe("functional: string", function() it("should gsub strings", function() assert.same("predator", _.gsub("^apex%s*", "", "apex predator")) end) + + it("should dedent strings", function() + assert.equals( + [[Lorem +Ipsum + Dolor + Sit + Amet]], + _.dedent [[ + Lorem + Ipsum + Dolor + Sit + Amet +]] + ) + end) end) diff --git a/tests/core/functional/table_spec.lua b/tests/core/functional/table_spec.lua index 25adff59..b10527f1 100644 --- a/tests/core/functional/table_spec.lua +++ b/tests/core/functional/table_spec.lua @@ -1,7 +1,51 @@ -local _ = require "nvim-lsp-installer.core.functional" +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) diff --git a/tests/core/functional/type_spec.lua b/tests/core/functional/type_spec.lua index b99262b5..8e8068df 100644 --- a/tests/core/functional/type_spec.lua +++ b/tests/core/functional/type_spec.lua @@ -1,4 +1,4 @@ -local _ = require "nvim-lsp-installer.core.functional" +local _ = require "mason.core.functional" describe("functional: type", function() it("should check nil value", function() |
