Files
neovim/test/functional/legacy/102_fnameescape_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

30 lines
750 B
Lua

-- Test if fnameescape is correct for special chars like!
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 = n.clear
local command, expect = n.command, n.expect
describe('fnameescape', function()
setup(clear)
it('is working', function()
command('let fname = "Xspa ce"')
command('try | exe "w! " . fnameescape(fname) | put=\'Space\' | endtry')
command('let fname = "Xemark!"')
command('try | exe "w! " . fnameescape(fname) | put=\'ExclamationMark\' | endtry')
expect([[
Space
ExclamationMark]])
end)
teardown(function()
os.remove('Xspa ce')
os.remove('Xemark!')
end)
end)