aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mason-core/result_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mason-core/result_spec.lua')
-rw-r--r--tests/mason-core/result_spec.lua13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/mason-core/result_spec.lua b/tests/mason-core/result_spec.lua
index 777e268b..737d8c56 100644
--- a/tests/mason-core/result_spec.lua
+++ b/tests/mason-core/result_spec.lua
@@ -1,6 +1,7 @@
local Result = require "mason-core.result"
local match = require "luassert.match"
local spy = require "luassert.spy"
+local Optional = require "mason-core.optional"
describe("result", function()
it("should create success", function()
@@ -140,4 +141,16 @@ describe("result", function()
assert.spy(on_success).was_called(1)
assert.spy(on_success).was_called_with "Oh noes"
end)
+
+ it("should convert success variants to non-empty optionals", function()
+ local opt = Result.success("Hello world!"):ok()
+ assert.is_true(getmetatable(opt) == Optional)
+ assert.equals("Hello world!", opt:get())
+ end)
+
+ it("should convert failure variants to empty optionals", function()
+ local opt = Result.failure("Hello world!"):ok()
+ assert.is_true(getmetatable(opt) == Optional)
+ assert.is_false(opt:is_present())
+ end)
end)