summaryrefslogtreecommitdiff
path: root/lua/99/test/test_utils.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/99/test/test_utils.lua')
-rw-r--r--lua/99/test/test_utils.lua38
1 files changed, 20 insertions, 18 deletions
diff --git a/lua/99/test/test_utils.lua b/lua/99/test/test_utils.lua
index 8f417d6..a1459a4 100644
--- a/lua/99/test/test_utils.lua
+++ b/lua/99/test/test_utils.lua
@@ -1,7 +1,14 @@
-local BaseProvider = require("99.providers").BaseProvider
local Levels = require("99.logger.level")
local M = {}
+--- @type _99.Providers.Observer
+local DevNullObserver = {
+ on_start = function() end,
+ on_complete = function() end,
+ on_stderr = function() end,
+ on_stdout = function() end,
+}
+
function M.next_frame()
local next = false
vim.schedule(function()
@@ -18,7 +25,7 @@ M.created_files = {}
--- @class _99.test.ProviderRequest
--- @field query string
--- @field request _99.Request
---- @field observer _99.Providers.Observer?
+--- @field observer _99.Providers.Observer
--- @field logger _99.Logger
--- @class _99.test.Provider : _99.Providers.BaseProvider
@@ -36,6 +43,10 @@ end
function TestProvider:make_request(query, request, observer)
local logger = request.context.logger:set_area("TestProvider")
logger:debug("make_request", "tmp_file", request.context.tmp_file)
+
+ observer = observer or DevNullObserver
+ observer.on_start()
+
self.request = {
query = query,
request = request,
@@ -48,35 +59,26 @@ end
--- @param result string
function TestProvider:resolve(status, result)
assert(self.request, "you cannot call resolve until make_request is called")
- local obs = self.request.observer
- if obs then
- --- to match the behavior expected from the OpenCodeProvider
- if self.request.request:is_cancelled() then
- obs.on_complete("cancelled", result)
- else
- obs.on_complete(status, result)
- end
+ if self.request.request:is_cancelled() then
+ self.request.observer.on_complete("cancelled", result)
+ else
+ self.request.observer.on_complete(status, result)
end
+
self.request = nil
end
--- @param line string
function TestProvider:stdout(line)
assert(self.request, "you cannot call stdout until make_request is called")
- local obs = self.request.observer
- if obs then
- obs.on_stdout(line)
- end
+ self.request.observer.on_stdout(line)
end
--- @param line string
function TestProvider:stderr(line)
assert(self.request, "you cannot call stderr until make_request is called")
- local obs = self.request.observer
- if obs then
- obs.on_stderr(line)
- end
+ self.request.observer.on_stderr(line)
end
M.TestProvider = TestProvider