refactor: Move scroller into own testable module

This commit is contained in:
TJ DeVries
2020-12-10 23:31:28 -05:00
parent b74c4b3efd
commit f3609abd7f
3 changed files with 100 additions and 21 deletions

View File

@@ -0,0 +1,56 @@
local p_scroller = require('telescope.pickers.scroller')
local eq = assert.are.same
describe('scroller', function()
local max_results = 10
describe('cycle', function()
local cycle_scroller = p_scroller.create('cycle')
it('should return values within the max results', function()
eq(5, cycle_scroller(max_results, max_results, 5))
end)
it('should return 0 at 0', function()
eq(0, cycle_scroller(max_results, max_results, 0))
end)
it('should cycle you to the top when you go below 0', function()
eq(max_results - 1, cycle_scroller(max_results, max_results, -1))
end)
it('should cycle you to 0 when you go past the results', function()
eq(0, cycle_scroller(max_results, max_results, max_results + 1))
end)
it('should cycle when current results is less than max_results', function()
eq(0, cycle_scroller(max_results, 5, 7))
end)
end)
describe('other', function()
local limit_scroller = p_scroller.create('limit')
it('should return values within the max results', function()
eq(5, limit_scroller(max_results, max_results, 5))
end)
it('should return 0 at 0', function()
eq(0, limit_scroller(max_results, max_results, 0))
end)
it('should not cycle', function()
eq(0, limit_scroller(max_results, max_results, -1))
end)
it('should cycle you to 0 when you go past the results', function()
eq(max_results - 1, limit_scroller(max_results, max_results, max_results + 1))
end)
it('should stay at current results when current results is less than max_results', function()
local current = 5
eq(current - 1, limit_scroller(max_results, current, 7))
end)
end)
end)