summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authortheprimeagain <the.primeagen@gmail.com>2026-02-18 07:07:13 -0700
committertheprimeagain <the.primeagen@gmail.com>2026-02-18 07:07:13 -0700
commitab095297ecfe6dea1c035ac08f6f6b4eed2c62b5 (patch)
tree769a285e79ecd750170c3eca1d3ead2b9d558ecf /lua
parent3e334a0e08cd6618d7ee50fdf7810712265a3a77 (diff)
downloada4-ab095297ecfe6dea1c035ac08f6f6b4eed2c62b5.tar.xz
a4-ab095297ecfe6dea1c035ac08f6f6b4eed2c62b5.zip
fixed request spec
Diffstat (limited to 'lua')
-rw-r--r--lua/99/test/request_spec.lua5
-rw-r--r--lua/99/test/test_utils.lua38
2 files changed, 25 insertions, 18 deletions
diff --git a/lua/99/test/request_spec.lua b/lua/99/test/request_spec.lua
index f6ce34d..3c58ecd 100644
--- a/lua/99/test/request_spec.lua
+++ b/lua/99/test/request_spec.lua
@@ -17,6 +17,7 @@ describe("request test", function()
local RequestContext = require("99.request-context")
local context = RequestContext.from_current_buffer(state, 100)
+ context.operation = "test_request"
context:finalize()
local request = Request.new(context)
@@ -28,6 +29,9 @@ describe("request test", function()
eq(0, state:active_request_count())
request:start({
+ on_start = function()
+ print("on_start")
+ end,
on_complete = function(status, _)
finished_called = true
finished_status = status
@@ -35,6 +39,7 @@ describe("request test", function()
on_stdout = function() end,
on_stderr = function() end,
})
+ test_utils.next_frame()
eq(1, state:active_request_count())
eq("requesting", request.state)
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