test/lib/vedeu/support/menu_test.rb in vedeu-0.0.38 vs test/lib/vedeu/support/menu_test.rb in vedeu-0.0.39
- old
+ new
@@ -4,10 +4,16 @@
module Vedeu
describe Menu do
let(:collection) { ['hydrogen', 'carbon', 'nitrogen', 'oxygen'] }
let(:menu) { Menu.new(collection) }
+ describe '#events' do
+ it 'returns the events defined for menus' do
+ menu.events.must_be_instance_of(Array)
+ end
+ end
+
describe '#current' do
it 'returns the current index' do
menu.current.must_equal(0)
end
end
@@ -16,33 +22,33 @@
it 'returns nil when no item is selected' do
menu.selected.must_equal(nil)
end
it 'returns the selected index when an item is selected' do
- menu.next.select
+ menu.next_item.select_item
menu.selected.must_equal(1)
end
end
describe '#current_item' do
it 'returns a tuple containing the current index and item' do
menu.current_item.must_equal([0, 'hydrogen'])
end
it 'when the current item has changed, the tuple will change' do
- menu.next.next
+ menu.next_item.next_item
menu.current_item.must_equal([2, 'nitrogen'])
end
end
describe '#selected_item' do
it 'returns nil when nothing is selected' do
menu.selected_item.must_equal(nil)
end
it 'returns a tuple containing the selected index and item' do
- menu.next.select
+ menu.next_item.select_item
menu.selected_item.must_equal([1, 'carbon'])
end
end
describe '#items' do
@@ -56,22 +62,22 @@
]
)
end
it 'returns a tuple when the current has changed' do
- menu.next.items.must_equal(
+ menu.next_item.items.must_equal(
[
[false, false, 'hydrogen'],
[false, true, 'carbon'],
[false, false, 'nitrogen'],
[false, false, 'oxygen']
]
)
end
it 'returns a tuple when an item is selected' do
- menu.next.select
+ menu.next_item.select_item
menu.items.must_equal(
[
[false, false, 'hydrogen'],
[true, true, 'carbon'],
[false, false, 'nitrogen'],
@@ -80,12 +86,12 @@
)
end
it 'returns a tuple when the current has changed and an item ' \
'is selected' do
- menu.next.select
- menu.next.next
+ menu.next_item.select_item
+ menu.next_item.next_item
menu.items.must_equal(
[
[false, false, 'hydrogen'],
[true, false, 'carbon'],
[false, false, 'nitrogen'],
@@ -101,90 +107,122 @@
[' > hydrogen', ' carbon', ' nitrogen', ' oxygen']
)
end
it 'returns a tuple when the current has changed' do
- menu.next.render.must_equal(
+ menu.next_item.render.must_equal(
[' hydrogen', ' > carbon', ' nitrogen', ' oxygen']
)
end
it 'returns a tuple when an item is selected' do
- menu.next.select
+ menu.next_item.select_item
menu.render.must_equal(
[' hydrogen', '*> carbon', ' nitrogen', ' oxygen']
)
end
it 'returns a tuple when the current has changed and an item ' \
'is selected' do
- menu.next.select
- menu.next.next
+ menu.next_item.select_item
+ menu.next_item.next_item
menu.render.must_equal(
[' hydrogen', '* carbon', ' nitrogen', ' > oxygen']
)
end
end
- describe '#top' do
+ describe '#top_item' do
it 'sets current to the index of the first item' do
- menu.next
- menu.top.must_equal(0)
+ menu.next_item
+ menu.top_item.current.must_equal(0)
end
+
+ it 'returns the instance' do
+ menu.top_item.must_equal(menu)
+ end
+
+ it 'is chainable' do
+ menu.top_item.current.must_equal(0)
+ end
end
- describe '#bottom' do
+ describe '#bottom_item' do
it 'sets current to the index of the last item' do
- menu.bottom.must_equal(3)
+ menu.bottom_item.current.must_equal(3)
end
+
+ it 'returns the instance' do
+ menu.top_item.must_equal(menu)
+ end
+
+ it 'is chainable' do
+ menu.bottom_item.current.must_equal(3)
+ end
end
- describe '#next' do
+ describe '#next_item' do
it 'sets the current to the index of the next item' do
- menu.next.current.must_equal(1)
+ menu.next_item.current.must_equal(1)
end
it 'returns the instance' do
- menu.next.must_equal(menu)
+ menu.next_item.must_equal(menu)
end
it 'is chainable but does not loop' do
- menu.next.next.next.next.next.current.must_equal(3)
+ menu.next_item.next_item.next_item.next_item.next_item.current.must_equal(3)
end
end
- describe '#prev' do
+ describe '#prev_item' do
it 'does not loop' do
- menu.prev.current.must_equal(0)
+ menu.prev_item.current.must_equal(0)
end
it 'sets the current to the index of the previous item' do
- menu.next.next.prev.current.must_equal(1)
+ menu.next_item.next_item.prev_item.current.must_equal(1)
end
it 'returns the instance' do
- menu.prev.must_equal(menu)
+ menu.prev_item.must_equal(menu)
end
it 'is chainable' do
- menu.next.next.next.prev.prev.current.must_equal(1)
+ menu.next_item.next_item.next_item.prev_item.prev_item.current.must_equal(1)
end
end
- describe '#select' do
+ describe '#select_item' do
it 'sets the selected index to the current index' do
- menu.select.must_equal(0)
+ menu.select_item.selected.must_equal(0)
end
it 'sets the selected index to the current index' do
- menu.next.select.must_equal(1)
+ menu.next_item.select_item.selected.must_equal(1)
end
+
+ it 'returns the instance' do
+ menu.select_item.must_equal(menu)
+ end
+
+ it 'is chainable' do
+ menu.select_item.selected.must_equal(0)
+ end
end
- describe '#deselect' do
+ describe '#deselect_item' do
it 'sets the selected index to nil' do
- menu.next.next.select
- menu.deselect.must_equal(nil)
+ menu.next_item.next_item.select_item
+ menu.deselect_item.selected.must_equal(nil)
+ end
+
+ it 'returns the instance' do
+ menu.deselect_item.must_equal(menu)
+ end
+
+ it 'is chainable' do
+ menu.deselect_item.selected.must_equal(nil)
end
end
describe '#last' do
it 'returns the index of the last item' do