145 lines
4.4 KiB
Lua
145 lines
4.4 KiB
Lua
require 'test.setup'
|
|
|
|
describe('buffer:setline()', function()
|
|
it('can accept one index linenr as second arg', with_buffer(function(buffer)
|
|
buffer:setline({
|
|
i { 'hello ' },
|
|
i { 'world' },
|
|
}, 1)
|
|
assert.are.equal(buffer[1], 'hello world')
|
|
end))
|
|
|
|
it('will append line when no second arg passed', with_buffer(function(buffer)
|
|
buffer[1] = 'hello'
|
|
buffer:setline 'world'
|
|
|
|
assert.are.equal(buffer[2], 'world')
|
|
end))
|
|
|
|
describe('and buffer[i]', function()
|
|
it('can accept a string as first arg', with_buffer(function(buffer)
|
|
buffer:setline 'hello world'
|
|
buffer[2] = 'hello world'
|
|
assert.are.equal(buffer[1], 'hello world')
|
|
assert.are.equal(buffer[2], 'hello world')
|
|
end))
|
|
|
|
it('can accept a node as first arg', with_buffer(function(buffer)
|
|
buffer:setline(i { 'hello world' })
|
|
buffer[2] = i { 'hello world' }
|
|
assert.are.equal(buffer[1], 'hello world')
|
|
assert.are.equal(buffer[2], 'hello world')
|
|
end))
|
|
|
|
it('can accept a node list as first arg', with_buffer(function(buffer)
|
|
buffer:setline {
|
|
i { 'hello ' },
|
|
i { 'world' },
|
|
}
|
|
|
|
buffer[2] = {
|
|
i { 'hello ' },
|
|
i { 'world' },
|
|
}
|
|
|
|
assert.are.equal(buffer[1], 'hello world')
|
|
assert.are.equal(buffer[2], 'hello world')
|
|
end))
|
|
|
|
it(' will fill with empty line if linenr is more than line_count', with_buffer(function(buffer)
|
|
buffer:setline('hello world', 3)
|
|
buffer[4] = 'hello world'
|
|
assert.are.equal(buffer[1], '')
|
|
assert.are.equal(buffer[2], '')
|
|
assert.are.equal(buffer[3], 'hello world')
|
|
assert.are.equal(buffer[4], 'hello world')
|
|
|
|
buffer:wipe()
|
|
|
|
buffer[1] = i { 'test' }
|
|
buffer[3] = 'hello world'
|
|
assert.are.equal(buffer[1], 'test')
|
|
assert.are.equal(buffer[2], '')
|
|
assert.are.equal(buffer[3], 'hello world')
|
|
end))
|
|
end)
|
|
end)
|
|
-- TODO :Add node test
|
|
|
|
describe('buffer:deleteline()', with_buffer(function(buffer)
|
|
before_each(function()
|
|
buffer:wipe()
|
|
end)
|
|
|
|
it('will delete the last line if no arg', function()
|
|
buffer[1] = 'line 1'
|
|
buffer[2] = 'line 2'
|
|
buffer:deleteline()
|
|
assert.are.equal(buffer:line_count(), 1)
|
|
assert.are.equal(buffer[1], 'line 1')
|
|
|
|
buffer:deleteline()
|
|
assert.are.equal(buffer:line_count(), 0)
|
|
end)
|
|
|
|
it('can accept a one indexed linenr to be deleted', function()
|
|
buffer[1] = 'line 1'
|
|
buffer[2] = 'line 2'
|
|
buffer:deleteline(1)
|
|
assert.are.equal(buffer[1], 'line 2')
|
|
end)
|
|
|
|
it('can accept a one indexed range to be deleted', function()
|
|
stub(api, 'nvim_buf_set_lines')
|
|
buffer[1] = 'line 1'
|
|
buffer[2] = 'line 2'
|
|
buffer[3] = 'line 3'
|
|
buffer:deleteline(1, 2)
|
|
---@diagnostic disable-next-line: param-type-mismatch
|
|
assert.stub(api.nvim_buf_set_lines).called_with(buffer.bufnr, 0, 2, false, {})
|
|
|
|
api.nvim_buf_set_lines:revert()
|
|
buffer:deleteline(1, 2)
|
|
assert.are.equal(buffer[1], 'line 3')
|
|
end)
|
|
end))
|
|
|
|
|
|
describe('buffer:lines()', with_buffer(function(buffer)
|
|
before_each(function()
|
|
buffer:wipe()
|
|
end)
|
|
|
|
it('will return all lines if no arg', function()
|
|
buffer[1] = 'line 1'
|
|
buffer[2] = 'line 2'
|
|
local lines = buffer:lines()
|
|
assert.are.equal(lines[1], 'line 1')
|
|
assert.are.equal(lines[2], 'line 2')
|
|
end)
|
|
|
|
it('will return all lines after linenr accept a one indexed linenr', function()
|
|
buffer[1] = 'line 1'
|
|
buffer[2] = 'line 2'
|
|
buffer[3] = 'line 3'
|
|
buffer[4] = 'line 4'
|
|
local lines = buffer:lines(2)
|
|
assert.are.equal(lines[1], 'line 2')
|
|
assert.are.equal(lines[2], 'line 3')
|
|
assert.are.equal(lines[3], 'line 4')
|
|
end)
|
|
|
|
it('can accept a one indexed range', function()
|
|
buffer[1] = 'line 1'
|
|
buffer[2] = 'line 2'
|
|
buffer[3] = 'line 3'
|
|
local lines = buffer:lines(1, 2)
|
|
assert.are.equal(lines[1], 'line 1')
|
|
assert.are.equal(lines[2], 'line 2')
|
|
|
|
lines = buffer:lines(2, 3)
|
|
assert.are.equal(lines[1], 'line 2')
|
|
assert.are.equal(lines[2], 'line 3')
|
|
end)
|
|
end))
|