diff options
| -rw-r--r-- | lua/clever_f/repeat_resolver.lua | 2 | ||||
| -rw-r--r-- | tests/run.lua | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/lua/clever_f/repeat_resolver.lua b/lua/clever_f/repeat_resolver.lua index f897179..6b2b2f6 100644 --- a/lua/clever_f/repeat_resolver.lua +++ b/lua/clever_f/repeat_resolver.lua @@ -213,7 +213,7 @@ function M.primary_direction(stored_descriptor, pressed_key, fix_key_direction) if domain.Descriptor.is_lowercase(pressed) then return domain.Descriptor.lowercase(stored) end - return nil + return domain.Descriptor.uppercase(stored) end M.resolve_primary_direction = M.primary_direction diff --git a/tests/run.lua b/tests/run.lua index 7a77ea2..1609593 100644 --- a/tests/run.lua +++ b/tests/run.lua @@ -4042,6 +4042,23 @@ test("Fixed lower-case keys use the lower-case stored form", function() end end) +test("Fixed upper-case keys use the upper-case stored form", function() + fresh_sequence_state() + local host = MemoryHost.new({ + configuration = { fix_key_direction = true }, + }) + local resolver = repeat_resolver.new({ policy = policy.new(host) }) + + for _, stored in ipairs({ "f", "F", "t", "T" }) do + for _, pressed in ipairs({ "F", "T" }) do + local expected = domain.Descriptor.uppercase(stored) + local actual = resolver:resolve_primary_direction(stored, pressed) + same(expected, actual, stored .. "/" .. pressed) + same(domain.Descriptor.from_string(stored).family, actual.family) + end + end +end) + for _, item in ipairs(tests) do local ok, failure = xpcall(item.body, debug.traceback) if not ok then |
