diff options
| author | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 11:39:56 +0200 |
|---|---|---|
| committer | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 11:39:56 +0200 |
| commit | 07cb5088325b7272f8718bfaee9e85515ae6a81e (patch) | |
| tree | 50b535e7c5531c068a94d54d6cfe548aedf90fd9 /tests | |
| parent | cd832008fd96082ac36e32dbde26aefb7147b4c9 (diff) | |
Gate command-line cursor suppression
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/run.lua | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/run.lua b/tests/run.lua index be2a8b3..7ca4e3c 100644 --- a/tests/run.lua +++ b/tests/run.lua @@ -4493,6 +4493,53 @@ test("Cursor presentation lease restores every prior value", function() falsy(lease:release()) end) +test("Cursor suppression requires policy and runtime support", function() + local policy_disabled = MemoryHost.new({ + configuration = { hide_cursor_on_cmdline = false }, + cursor_presentation_support = true, + }) + local disabled_lease = feedback_service.new(policy_disabled) + :create_cursor_presentation_lease() + falsy(disabled_lease.active) + falsy(policy_disabled:cursor_presentation().hidden) + + local runtime_disabled = MemoryHost.new({ + configuration = { hide_cursor_on_cmdline = true }, + cursor_presentation_support = false, + }) + local unsupported_lease = feedback_service.new(runtime_disabled) + :create_cursor_presentation_lease() + falsy(unsupported_lease.active) + falsy(runtime_disabled:cursor_presentation().hidden) + + local enabled = MemoryHost.new({ + configuration = { hide_cursor_on_cmdline = true }, + cursor_presentation_support = true, + }) + local enabled_lease = feedback_service.new(enabled) + :create_cursor_presentation_lease() + truthy(enabled_lease.active) + truthy(enabled:cursor_presentation().hidden) + truthy(enabled_lease:release()) + + local function operation_count(host, name) + local count = 0 + for _, operation in ipairs(host:operations()) do + if operation.operation == name then + count = count + 1 + end + end + return count + end + + same(0, operation_count(policy_disabled, "supports_cursor_presentation")) + same(0, operation_count(policy_disabled, "suppress_cursor_presentation")) + same(1, operation_count(runtime_disabled, "supports_cursor_presentation")) + same(0, operation_count(runtime_disabled, "suppress_cursor_presentation")) + same(1, operation_count(enabled, "supports_cursor_presentation")) + same(1, operation_count(enabled, "suppress_cursor_presentation")) +end) + for _, item in ipairs(tests) do local ok, failure = xpcall(item.body, debug.traceback) if not ok then |
