test: screen: Assert expected row count matches configured screen height

When there is a difference in expected vs. actual row count, the user
gets a confusing message about being unable to string concat a nil value
from screen:expect.

This assert makes it clear what the problem is rather than requiring
people to dig through the code of screen:expect to determine what
happened.
This commit is contained in:
James McCoy 2017-01-17 10:46:32 -05:00
parent d3b4764dc1
commit 4322021bae

View File

@ -205,6 +205,9 @@ end
function Screen:try_resize(columns, rows)
uimeths.try_resize(columns, rows)
-- Give ourselves a chance to _handle_resize, which requires using
-- self.sleep() (for the resize notification) rather than run()
self:sleep(0.1)
end
-- Asserts that `expected` eventually matches the screen state.
@ -224,6 +227,11 @@ function Screen:expect(expected, attr_ids, attr_ignore, condition, any)
row = row:sub(1, #row - 1)
table.insert(expected_rows, row)
end
if not any then
assert(self._height == #expected_rows,
"Expected screen state's row count(" .. #expected_rows
.. ') differs from configured height(' .. self._height .. ') of Screen.')
end
local ids = attr_ids or self._default_attr_ids
local ignore = attr_ignore or self._default_attr_ignore
self:wait(function()