# test-samurai-jest-runner.nvim Jest.js runner for `test-samurai.nvim`. Main plugin: https://gitea.mschirmer.com/m13r/test-samurai.nvim ## Features - Detects Jest test files (`*.test.*`, `*.spec.*`). - Activates only when the nearest `package.json` lists `jest` in dependencies or devDependencies. - Finds nearest `test`/`it` within `describe` blocks. - Builds `npx jest` commands for nearest, file, all, and failed-only runs. - Streams results via a custom Jest reporter using `onTestCaseResult`. - Uses `--testLocationInResults` for Quickfix and `o` support. - Captures `console.*` output per test case and shows it in the detail float. ## Installation (lazy.nvim) ```lua { "m13r/test-samurai.nvim", dependencies = { "m13r/test-samurai-jest-runner.nvim", }, config = function() require("test-samurai").setup({ runners = { require("test-samurai-jest-runner"), }, }) end, } ``` ## Local Development (lazy.nvim) ```lua { "m13r/test-samurai.nvim", dependencies = { { "test-samurai-jest-runner.nvim", dir = "/absolute/path/to/test-samurai-jest-runner.nvim", }, }, config = function() require("test-samurai").setup({ runners = { require("test-samurai-jest-runner"), }, }) end, } ``` ## Usage Use the standard `test-samurai.nvim` commands (e.g. `TSamNearest`, `TSamFile`, `TSamAll`, `TSamFailedOnly`). ## Notes - The reporter lives at `reporter/test_samurai_jest_reporter.js` and is loaded via `--reporters`. - Test names are reported as `Describe/It` for grouping in the listing. - Stdout capture uses `reporter/test_samurai_jest_stdout.js` via `--setupFilesAfterEnv` and tags output as `TSAMURAI_STDOUT`. - If present, `jest.setup.js` or `jest.setup.ts` from the project root or `test/.bin` is appended via `--setupFilesAfterEnv`.