diff options
| author | theprimeagain <the.primeagen@gmail.com> | 2026-02-18 07:07:13 -0700 |
|---|---|---|
| committer | theprimeagain <the.primeagen@gmail.com> | 2026-02-18 07:07:13 -0700 |
| commit | ab095297ecfe6dea1c035ac08f6f6b4eed2c62b5 (patch) | |
| tree | 769a285e79ecd750170c3eca1d3ead2b9d558ecf | |
| parent | 3e334a0e08cd6618d7ee50fdf7810712265a3a77 (diff) | |
| download | a4-ab095297ecfe6dea1c035ac08f6f6b4eed2c62b5.tar.xz a4-ab095297ecfe6dea1c035ac08f6f6b4eed2c62b5.zip | |
fixed request spec
| -rw-r--r-- | lua/99/test/request_spec.lua | 5 | ||||
| -rw-r--r-- | lua/99/test/test_utils.lua | 38 |
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 |
