David-Kunz / jester

A Neovim plugin to easily run and debug Jest tests
The Unlicense
198 stars 12 forks source link

Fails to run tests with - in their name #28

Open FedeAbella opened 6 months ago

FedeAbella commented 6 months ago

This is basically a copy of #10. I commented there, but given it's closed, it might get lost so just repeating that here:

I can share what is being run on my case:

npx sfdx-lwc-jest -- -t '^c\\-api\\-data\\-fetcher does not display success or error messages when loading$' /home/fede/P
rogramming/Salesforce/one\\-customer\\-care\\-sfdc/force\\-app/main/default/lwc/apiDataFetcher/__tests__/apiDataFetcher\\.test\\.js

Please note the npx sfdx-lwc-jest -- is a wrapper around jest, but works fine if the dashes are not double escaped: npx sfdx-lwc-jest -- -t '^c-api-data-fetcher does not display' force-app/main/default/lwc/apiDataFetcher/__tests__/apiDataFetcher.test.js works fine (I dropped the $, but it just ends up running multiple tests)

This is my config:

return {
    'David-Kunz/jester',
    config = function()
        require('jester').setup {
            cmd = "npx sfdx-lwc-jest -- -t '$result' $file",
            prepend = { 'describe' },
            terminal_cmd = ":ToggleTerm direction=float"
        }
    end
}

Replicated in bash and zsh. Both in and out of tmux, and both in alacritty and gnome-terminal.

Let me know what other info I can get for you.

kabala commented 3 months ago

I can confirm this issue, it happens to me when there's an underscore in the test description like "test the _document.head file". When I run the tests nearest. The command just skips the targeted test. It doesn't work even if I escape the underscore.

RMAICE commented 6 days ago

there is undocumented option "escapeRegex"

so i initiate jester with escapeRegex = false:

local cmd = " ./node_modules/.bin/jest --runInBand --colors --detectOpenHandles -t '$result' -- $file"

vim.keymap.set("n", "<leader>jr", function()
    require("jester").run({ cmd = "node" .. cmd, escapeRegex = false })
end)

vim.keymap.set("n", "<leader>jd", function()
    require("jester").run({ cmd = "node --inspect-brk" .. cmd, escapeRegex = false })
end)

or we can produce an PR to improve escaping algorithm

@David-Kunz may be extend the available options in README examples?