finish first MVP with test-runner-detection for Go, Mocha.js, Jest.js and ViTest.js
This commit is contained in:
@@ -3,17 +3,17 @@ local go_runner = require("test-samurai.runners.go")
|
||||
describe("test-samurai go runner", function()
|
||||
it("detects Go test files by suffix", function()
|
||||
local bufnr1 = vim.api.nvim_create_buf(false, true)
|
||||
vim.api.nvim_buf_set_name(bufnr1, "/tmp/foo_test.go")
|
||||
vim.api.nvim_buf_set_name(bufnr1, "/tmp/go_suffix_test.go")
|
||||
assert.is_true(go_runner.is_test_file(bufnr1))
|
||||
|
||||
local bufnr2 = vim.api.nvim_create_buf(false, true)
|
||||
vim.api.nvim_buf_set_name(bufnr2, "/tmp/foo.go")
|
||||
vim.api.nvim_buf_set_name(bufnr2, "/tmp/go_main.go")
|
||||
assert.is_false(go_runner.is_test_file(bufnr2))
|
||||
end)
|
||||
|
||||
it("finds subtest when cursor is inside t.Run block", function()
|
||||
local bufnr = vim.api.nvim_create_buf(false, true)
|
||||
vim.api.nvim_buf_set_name(bufnr, "/tmp/foo_test.go")
|
||||
vim.api.nvim_buf_set_name(bufnr, "/tmp/go_subtest_test.go")
|
||||
local lines = {
|
||||
"package main",
|
||||
"import \"testing\"",
|
||||
@@ -44,13 +44,13 @@ describe("test-samurai go runner", function()
|
||||
assert.is_not_nil(spec)
|
||||
assert.equals("TestFoo/first", spec.test_path)
|
||||
assert.equals("subtest", spec.scope)
|
||||
assert.equals("/tmp/foo_test.go", spec.file)
|
||||
assert.equals("/tmp", spec.cwd)
|
||||
assert.is_true(spec.file:match("go_subtest_test%.go$") ~= nil)
|
||||
assert.is_true(spec.cwd:match("tmp$") ~= nil)
|
||||
end)
|
||||
|
||||
it("falls back to whole test function when between subtests", function()
|
||||
local bufnr = vim.api.nvim_create_buf(false, true)
|
||||
vim.api.nvim_buf_set_name(bufnr, "/tmp/foo_test.go")
|
||||
vim.api.nvim_buf_set_name(bufnr, "/tmp/go_between_test.go")
|
||||
local lines = {
|
||||
"package main",
|
||||
"import \"testing\"",
|
||||
@@ -81,5 +81,35 @@ describe("test-samurai go runner", function()
|
||||
assert.is_not_nil(spec)
|
||||
assert.equals("TestFoo", spec.test_path)
|
||||
assert.equals("function", spec.scope)
|
||||
assert.is_true(spec.file:match("go_between_test%.go$") ~= nil)
|
||||
assert.is_true(spec.cwd:match("tmp$") ~= nil)
|
||||
end)
|
||||
|
||||
it("build_command uses current package and correct run pattern", function()
|
||||
local spec_sub = {
|
||||
file = "/tmp/project/pkg/foo_test.go",
|
||||
cwd = "/tmp/project",
|
||||
test_path = "TestFoo/first",
|
||||
scope = "subtest",
|
||||
}
|
||||
|
||||
local cmd_spec_sub = go_runner.build_command(spec_sub)
|
||||
assert.are.same(
|
||||
{ "go", "test", "-v", "./pkg", "-run", "^TestFoo%/first$" },
|
||||
cmd_spec_sub.cmd
|
||||
)
|
||||
|
||||
local spec_func = {
|
||||
file = "/tmp/project/foo_test.go",
|
||||
cwd = "/tmp/project",
|
||||
test_path = "TestFoo",
|
||||
scope = "function",
|
||||
}
|
||||
|
||||
local cmd_spec_func = go_runner.build_command(spec_func)
|
||||
assert.are.same(
|
||||
{ "go", "test", "-v", "./", "-run", "^TestFoo$|^TestFoo/" },
|
||||
cmd_spec_func.cmd
|
||||
)
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user