summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/run.lua25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/run.lua b/tests/run.lua
index 05a37f7..6186d7b 100644
--- a/tests/run.lua
+++ b/tests/run.lua
@@ -7375,6 +7375,31 @@ test("Expired primary repetition resets resources and reacquires pressed key", f
falsy(host:timers()[timer].active)
end)
+test("Timely primary repetition reads current-context sequence values", function()
+ local _, transitions = fresh_sequence_state()
+ local landing = domain.Position.new(1, 3)
+ local normal_target = target("a")
+ local visual_target = target("b")
+ transitions:BeginAcquisition("n", "F")
+ transitions:CommitAcquiredTarget("n", normal_target)
+ transitions:CommitCommandSuccess("n", landing, false)
+ transitions:BeginAcquisition("v", "t")
+ transitions:CommitAcquiredTarget("v", visual_target)
+ transitions:CommitVisualSuccess("v", landing)
+ local host = MemoryHost.new({
+ buffer_lines = { "ababa" },
+ cursor = landing,
+ mode = "n",
+ })
+
+ local resolution = sequence_coordinator.new({ host = host }):primary("t")
+
+ same("repeat", resolution.kind)
+ same(domain.Descriptor.FIND_BACKWARD, resolution.stored_descriptor)
+ same(normal_target, resolution.target)
+ same(domain.Descriptor.TILL_FORWARD, resolution.pressed_descriptor)
+end)
+
for _, item in ipairs(tests) do
local ok, failure = xpcall(item.body, debug.traceback)
if not ok then