aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mason-core/optional_spec.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-10-05 20:33:21 +0200
committerGitHub <noreply@github.com>2022-10-05 20:33:21 +0200
commit738684097dfdd9a4a67cd217b0beda3e169bd85d (patch)
treed2eb8485dedcac66061b0d99ad7f810828911073 /tests/mason-core/optional_spec.lua
parenttest(cargo): stub crates.io http call (#508) (diff)
downloadmason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.gz
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.bz2
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.lz
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.xz
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.zst
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.zip
feat(cargo): improve handling of git-based crates (#512)
This is all pretty overkill, especially considering the small amount of packages based on git-based crates.
Diffstat (limited to 'tests/mason-core/optional_spec.lua')
-rw-r--r--tests/mason-core/optional_spec.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/mason-core/optional_spec.lua b/tests/mason-core/optional_spec.lua
index 4e6b1325..b1a4f41a 100644
--- a/tests/mason-core/optional_spec.lua
+++ b/tests/mason-core/optional_spec.lua
@@ -1,4 +1,5 @@
local Optional = require "mason-core.optional"
+local Result = require "mason-core.result"
local spy = require "luassert.spy"
describe("Optional.of_nilable", function()
@@ -75,3 +76,19 @@ describe("Optional.if_not_present()", function()
assert.spy(present).was_called(1)
end)
end)
+
+describe("Optional.ok_or()", function()
+ it("should return success variant if non-empty", function()
+ local result = Optional.of_nilable("Hello world!"):ok_or()
+ assert.is_true(getmetatable(result) == Result)
+ assert.equals("Hello world!", result:get_or_nil())
+ end)
+
+ it("should return failure variant if empty", function()
+ local result = Optional.empty():ok_or(function()
+ return "I'm empty."
+ end)
+ assert.is_true(getmetatable(result) == Result)
+ assert.equals("I'm empty.", result:err_or_nil())
+ end)
+end)