1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
-- luacheck: globals describe it assert
local _99 = require("99")
local test_utils = require("99.test.test_utils")
local Prompt = require("99.prompt")
local eq = assert.are.same
local content = {
"local function foo()",
" -- TODO: implement",
"end",
}
describe("request test", function()
it("should replace visual selection with AI response", function()
local p = test_utils.test_setup(content, 2, 1, "lua")
local state = _99.__get_state()
local context = Prompt.search(state)
context:finalize()
local finished_called = false
local finished_status = nil
eq("ready", context.state)
eq(0, state:active_request_count())
context:start_request({
on_start = function()
print("on_start")
end,
on_complete = function(status, _)
finished_called = true
finished_status = status
end,
on_stdout = function() end,
on_stderr = function() end,
})
test_utils.next_frame()
eq(1, state:active_request_count())
eq("requesting", context.state)
p:resolve("success", " return 'implemented!'")
assert.is_true(finished_called)
eq(0, state:active_request_count())
eq("success", context.state)
eq("success", finished_status)
end)
end)
|