diff options
Diffstat (limited to 'tests/mason-core/result_spec.lua')
| -rw-r--r-- | tests/mason-core/result_spec.lua | 13 |
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) |
