local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') local clear = helpers.clear local command = helpers.command local feed = helpers.feed describe('update_menu notification', function() local screen before_each(function() clear() screen = Screen.new() screen:attach() end) local function expect_sent(expected) screen:expect { condition = function() if screen.update_menu ~= expected then if expected then error('update_menu was expected but not sent') else error('update_menu was sent unexpectedly') end end end, unchanged = not expected, } end it('should be sent when adding a menu', function() command('menu Test.Test :') expect_sent(true) end) it('should be sent when deleting a menu', function() command('menu Test.Test :') screen.update_menu = false command('unmenu Test.Test') expect_sent(true) end) it('should not be sent unnecessarily', function() feed('i12345:redraw') expect_sent(false) end) end)