summaryrefslogtreecommitdiff
path: root/_selfcheck.lua
diff options
context:
space:
mode:
Diffstat (limited to '_selfcheck.lua')
-rw-r--r--_selfcheck.lua28
1 files changed, 23 insertions, 5 deletions
diff --git a/_selfcheck.lua b/_selfcheck.lua
index 8b83fa5..08df12c 100644
--- a/_selfcheck.lua
+++ b/_selfcheck.lua
@@ -16,6 +16,7 @@ end
assert(loadfile(assert(find_rockspec(), "no .rockspec in the repo root")))
+package.loaded.panto = nil
package.preload.panto = function()
return {
ext = {
@@ -24,6 +25,7 @@ package.preload.panto = function()
}
end
+package.loaded.luv = nil
package.preload.luv = function()
return {
spawn = function(command, options, _)
@@ -34,12 +36,14 @@ package.preload.luv = function()
end
local getenv = os.getenv
+local now = 100
+os.time = function() return now end
os.getenv = function(name)
if name == "HERDR_PANE_ID" then return "w1:p1" end
return getenv(name)
end
-local entry = require("panto-herdr")
+local entry = assert(loadfile("panto-herdr/init.lua"))()
entry.activate()
events.session_start()
events.user_message()
@@ -47,11 +51,25 @@ events.user_message()
events.tool_details({ tool_name = "read" })
events.assistant_text()
events.assistant_text_complete()
+events.session_end()
-assert(#reports == 5)
+-- A new process in the same pane/source must outrank the old process's final
+-- sequence number instead of being ignored as stale.
+now = 101
+events = {}
+entry.activate()
+events.session_start()
+events.assistant_text()
+events.session_ready()
+
+assert(#reports == 9)
assert(reports[1].command == "herdr")
-assert(table.concat(reports[1].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state idle --seq 1")
-assert(table.concat(reports[3].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state working --seq 3 --custom-status tool:read")
-assert(table.concat(reports[5].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state idle --seq 5")
+assert(table.concat(reports[1].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state idle --seq 100000001")
+assert(table.concat(reports[3].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state working --seq 100000003 --message tool:read")
+assert(table.concat(reports[5].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state idle --seq 100000005")
+assert(table.concat(reports[6].args, " ") == "pane release-agent w1:p1 --source panto:extension --agent panto --seq 100000006")
+assert(table.concat(reports[7].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state idle --seq 101000001")
+assert(table.concat(reports[8].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state working --seq 101000002 --message responding")
+assert(table.concat(reports[9].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state idle --seq 101000003")
print("panto-herdr self-check: ok")