test: replace busted with local harness

Replace the busted-based Lua test runner with a repo-local harness.

The new harness runs spec files directly under `nvim -ll`, ships its own
reporter and lightweight `luassert` shim, and keeps the helper/preload
flow used by the functional and unit test suites.

Keep the file boundary model shallow and busted-like by restoring `_G`,
`package.loaded`, `package.preload`, `arg`, and the process environment
between files, without carrying extra reset APIs or custom assertion
machinery.

Update the build and test entrypoints to use the new runner, add
black-box coverage for the harness itself, and drop the bundled
busted/luacheck dependency path.

AI-assisted: Codex
This commit is contained in:
Lewis Russell
2026-03-25 13:33:17 +00:00
parent e289f9579c
commit 55f9c2136e
45 changed files with 3899 additions and 659 deletions

View File

@@ -1,6 +1,6 @@
-- Modules loaded here will NOT be cleared and reloaded by Busted.
-- Busted started doing this to help provide more isolation. See issue #62
-- for more information about this.
-- Modules loaded here will not be cleared and reloaded by the local harness.
-- Keeping these preloaded preserves cross-file setup while still resetting
-- non-helper modules between files.
local t = require('test.testutil')
require('test.functional.testnvim')()
require('test.functional.ui.screen')