diff options
Diffstat (limited to 'tests/run.lua')
| -rw-r--r-- | tests/run.lua | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/tests/run.lua b/tests/run.lua index 202eb4a..6c55d0c 100644 --- a/tests/run.lua +++ b/tests/run.lua @@ -4181,6 +4181,39 @@ test("Encoded explicit targets return a neutral request", function() same(nil, opposite_request.descriptor) end) +test("Explicit requests stay outside fixed-direction policy", function() + local _, transitions = fresh_sequence_state() + local stored_target = target("a") + transitions:BeginAcquisition("n", "F") + transitions:CommitAcquiredTarget("n", stored_target) + + local direction_samples = 0 + local policy_probe = { + sample_timeouts = function() + return { repeat_timeout_ms = 0 } + end, + sample_direction = function() + direction_samples = direction_samples + 1 + return { fix_key_direction = true } + end, + } + local resolver = repeat_resolver.new({ policy = policy_probe }) + + local same_request = resolver:same_direction_request("n") + local opposite_request = resolver:opposite_direction_request("n") + same(0, direction_samples) + same(domain.Descriptor.FIND_BACKWARD, same_request.descriptor) + same(domain.Descriptor.FIND_FORWARD, opposite_request.descriptor) + same(stored_target, same_request.target) + same(stored_target, opposite_request.target) + + same( + domain.Descriptor.FIND_FORWARD, + resolver:resolve_primary_direction("F", "f") + ) + same(1, direction_samples) +end) + for _, item in ipairs(tests) do local ok, failure = xpcall(item.body, debug.traceback) if not ok then @@ -4190,4 +4223,4 @@ for _, item in ipairs(tests) do passed = passed + 1 end -io.stdout:write(string.format("Phase 9: %d tests passed\n", passed)) +io.stdout:write(string.format("Phase 10: %d tests passed\n", passed)) |
