diff --git a/spec/keys_spec.lua b/spec/keys_spec.lua index bf48b81..6c70d4a 100644 --- a/spec/keys_spec.lua +++ b/spec/keys_spec.lua @@ -1,3 +1,4 @@ +---@diagnostic disable: invisible local keys = require("lz.n.handler.keys") local state = require("lz.n.state") local loader = require("lz.n.loader") @@ -54,4 +55,28 @@ describe("keys", function() itt({ keys.parse("tt"), keys.parse("ff") }) itt({ keys.parse("ff"), keys.parse("tt") }) end) + it("Plugins' keymaps are triggered", function() + local lhs = "xy" + ---@type LzPlugin + local plugin = { + name = "baz", + keys = { keys.parse(lhs) }, + } + local triggered = false + local orig_load = loader._load + ---@diagnostic disable-next-line: duplicate-set-field + loader._load = function(...) + vim.keymap.set("n", lhs, function() + triggered = true + end) + orig_load(...) + end + state.plugins[plugin.name] = plugin + keys.add(plugin) + local feed = vim.api.nvim_replace_termcodes("" .. lhs, true, true, true) + vim.api.nvim_feedkeys(feed, "ix", false) + vim.api.nvim_feedkeys(feed, "x", false) + assert.True(triggered) + loader._load = orig_load + end) end)