awesome-slot/spec/slots/client/append_mousebindings_spec.tl

41 lines
1.2 KiB
Plaintext
Raw Normal View History

2024-10-28 03:53:06 +01:00
local type Button = require("awful.button")
local client = require("awesome-slot.slots.client")
local mouse = require("awful.mouse")
describe("Test awesome-slot.slots.client.append_mousebindings", function()
-- Spies cannot be used with Teal since it doesn't allow to augment assert.
-- Instead, we will use a local variable to store the registered bindings and
-- override the append_client_mousebinding function to store the bindings in
-- the local variable.
local registered_bindings: { Button } = {}
function mouse.append_client_mousebindings(bindings: { Button })
for _, binding in ipairs(bindings) do
table.insert(registered_bindings , binding)
end
end
before_each(function()
registered_bindings = {}
end)
it("should invoke awful.mouse.append_client_mousebinding", function()
local bindings = {
Button {
modifiers = { "Mod1" },
button = 1,
on_press = function() end,
},
}
client.append_mousebindings {
mousebindings = bindings,
}
assert(#registered_bindings == #bindings)
for i=1,#bindings do
assert(registered_bindings[i] == bindings[i])
end
end)
end)