From b7a970a309e7dab736822cf0b277d9b33f29bd01 Mon Sep 17 00:00:00 2001 From: myk002 Date: Tue, 15 Jun 2021 13:15:37 -0700 Subject: [PATCH] allow mock.func() to return multiple values --- library/lua/test_util/mock.lua | 6 +++--- test/library/test_util/mock.lua | 10 +++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/library/lua/test_util/mock.lua b/library/lua/test_util/mock.lua index 2e86cbe38..02f8b3084 100644 --- a/library/lua/test_util/mock.lua +++ b/library/lua/test_util/mock.lua @@ -81,9 +81,9 @@ function mock.restore(...) return _patch_impl(patches, callback, true) end -function mock.func(return_value) +function mock.func(...) local f = { - return_value = return_value, + return_values = {...}, call_count = 0, call_args = {}, } @@ -92,7 +92,7 @@ function mock.func(return_value) __call = function(self, ...) self.call_count = self.call_count + 1 table.insert(self.call_args, {...}) - return self.return_value + return table.unpack(self.return_values) end, }) diff --git a/test/library/test_util/mock.lua b/test/library/test_util/mock.lua index a605abc8a..32aed28e1 100644 --- a/test/library/test_util/mock.lua +++ b/test/library/test_util/mock.lua @@ -203,6 +203,14 @@ end function test.func_call_return_value() local f = mock.func(7) expect.eq(f(), 7) - f.return_value = 9 + f.return_values = {9} expect.eq(f(), 9) end + +function test.func_call_return_multiple_values() + local f = mock.func(7,5,{imatable='snarfsnarf'}) + local a, b, c = f() + expect.eq(7, a) + expect.eq(5, b) + expect.table_eq({imatable='snarfsnarf'}, c) +end