Files
neovim/test/functional/legacy/023_edit_arguments_spec.lua
Justin M. Keyes 6d8c8b18d5 test(harness): migrate away from magic globals
Problem:
The magic globals `it`, `describe`, etc., are more trouble than they are
worth.

- Hooking into `after_each` requires `getfenv()` hacks.
- They confuse luals/emmylua, because the top-level `.luarc.json` isn't
  merged with `test/.luarc.json` (apparently a luals limitation?)
- They totally defeat discoverability because the user just has to
  "know" about the various magic symbols.

So they harm DX, which means they serve no purpose at all.

Solution:
- Expose the test API from `testutil`, so tests can call `t.it()`,
  `t.describe()`, etc., in the conventional way.
- Drop `getfenv()` hacks.
- Drop the `setfenv()` injection in `load_chunk`.
- Drop `test/_meta.lua`.
2026-07-21 13:22:39 +02:00

58 lines
1.3 KiB
Lua

-- Tests for complicated + argument to :edit command
local n = require('test.functional.testnvim')()
local t = require('test.testutil')
local describe, it, setup, teardown = t.describe, t.it, t.setup, t.teardown
local clear, insert = n.clear, n.insert
local command, expect = n.command, n.expect
local poke_eventloop = n.poke_eventloop
describe(':edit', function()
setup(clear)
it('is working', function()
insert([[
The result should be in Xfile1: "fooPIPEbar", in Xfile2: "fooSLASHbar"
foo|bar
foo/bar]])
poke_eventloop()
-- Prepare some test files
command('$-1w! Xfile1')
command('$w! Xfile2')
command('w! Xfile0')
-- Open Xfile using '+' range
command('edit +1 Xfile1')
command('s/|/PIPE/')
command('yank A')
command('w! Xfile1')
-- Open Xfile2 using '|' range
command('edit Xfile2|1')
command('s/\\//SLASH/')
command('yank A')
command('w! Xfile2')
-- Clean first buffer and put @a
command('bf')
command('%d')
command('0put a')
-- Remove empty line
command('$d')
-- The buffer should now contain
expect([[
fooPIPEbar
fooSLASHbar]])
end)
teardown(function()
os.remove('Xfile0')
os.remove('Xfile1')
os.remove('Xfile2')
end)
end)