Files
neovim/test/functional/autocmd/focus_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

78 lines
2.2 KiB
Lua

local t = require('test.testutil')
local n = require('test.functional.testnvim')()
local tt = require('test.functional.testterm')
local describe, it, before_each, teardown = t.describe, t.it, t.before_each, t.teardown
local clear = n.clear
local feed_data = tt.feed_data
describe('autoread TUI FocusGained/FocusLost', function()
local f1 = 'xtest-foo'
local screen
before_each(function()
clear()
screen = tt.setup_child_nvim({
'-u',
'NONE',
'-i',
'NONE',
'--cmd',
'colorscheme vim',
'--cmd',
'set noswapfile noshowcmd noruler notermguicolors',
})
end)
teardown(function()
os.remove(f1)
end)
it('external file change', function()
local path = f1
local expected_addition = [[
line 1
line 2
line 3
line 4
]]
t.write_file(path, '')
local atime = os.time() - 10
vim.uv.fs_utime(path, atime, atime)
screen:expect([[
^ |
{100:~ }|*3
{3:[No Name] }|
|
{5:-- TERMINAL --} |
]])
n.feed(':edit ' .. path .. '<CR>')
screen:expect([[
^ |
{100:~ }|*3
{3:xtest-foo }|
:edit xtest-foo |
{5:-- TERMINAL --} |
]])
feed_data('\027[O')
feed_data('\027[O')
screen:expect_unchanged()
t.write_file(path, expected_addition)
feed_data('\027[I')
screen:expect([[
^line 1 |
line 2 |
line 3 |
line 4 |
{3:xtest-foo }|
:edit xtest-foo |
{5:-- TERMINAL --} |
]])
end)
end)