Skip to content
This repository was archived by the owner on Nov 30, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions lua/java-core/adapters/init.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
local jdtls_types = require('java-core.ls.servers.jdtls.jdtls-types')

local List = require('java-core.utils.list')
local Set = require('java-core.utils.set')
local JavaTestClient = require('java-core.ls.clients.java-test-client')
Expand All @@ -10,7 +8,7 @@ local M = {}
---@param launch_args JavaCoreTestJunitLaunchArguments
---@param java_exec string
---@param config { debug: boolean, label: string }
---@return JavaCoreDapLauncherConfig
---@return java_core.DapLauncherConfig
function M.get_dap_launcher_config(launch_args, java_exec, config)
return {
name = config.label,
Expand Down
29 changes: 15 additions & 14 deletions lua/java-core/api/test.lua
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
local log = require('java-core.utils.log')
local data_adapters = require('java-core.adapters')

local TestReport = require('java-core.dap.test-report')
local JavaDapRunner = require('java-core.dap.runner')
local JavaDebug = require('java-core.ls.clients.java-debug-client')
local JavaTest = require('java-core.ls.clients.java-test-client')

---@class JavaCoreTestApi
---@class java_core.TestApi
---@field private client java_core.JdtlsClient
---@field private debug_client JavaCoreDebugClient
---@field private test_client java_core.TestClient
---@field private runner JavaCoreDapRunner
---@field private runner java_core.DapRunner
local M = {}

---Returns a new test helper client
---@param args { client: LspClient }
---@return JavaCoreTestApi
---@param args { client: LspClient, runner: java_core.DapRunner }
---@return java_core.TestApi
function M:new(args)
local o = {
client = args.client,
Expand All @@ -29,9 +27,7 @@ function M:new(args)
client = args.client,
})

o.runner = JavaDapRunner:new({
reporter = TestReport:new(),
})
o.runner = args.runner

setmetatable(o, self)
self.__index = self
Expand Down Expand Up @@ -60,9 +56,14 @@ end
---Runs the test class in the given buffer
---@param buffer integer
---@param config JavaCoreDapLauncherConfigOverridable
function M:run_class_by_buffer(buffer, config)

---comment
---@param buffer number
---@param report java_test.JUnitTestReport
---@param config? JavaCoreDapLauncherConfigOverridable config to override the default values in test launcher config
function M:run_class_by_buffer(buffer, report, config)
local tests = self:get_test_class_by_buffer(buffer)
self:run_test(tests, config)
self:run_test(tests, report, config)
end

---Returns test classes in the given buffer
Expand All @@ -78,9 +79,9 @@ end

---Run the given test
---@param tests java_core.TestDetails[]
---@param report java_test.JUnitTestReport
---@param config? JavaCoreDapLauncherConfigOverridable config to override the default values in test launcher config
function M:run_test(tests, config)
---@type JavaCoreTestJunitLaunchArguments
function M:run_test(tests, report, config)
local launch_args = self.test_client:resolve_junit_launch_arguments(
data_adapters.get_junit_launch_argument_params(tests)
)
Expand All @@ -99,7 +100,7 @@ function M:run_test(tests, config)
dap_launcher_config =
vim.tbl_deep_extend('force', dap_launcher_config, config or {})

self.runner:run_by_config(dap_launcher_config)
self.runner:run_by_config(dap_launcher_config, report)
end

return M
2 changes: 1 addition & 1 deletion lua/java-core/dap/adapters.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ local M = {}
---@param main JavaDebugResolveMainClassRecord
---@param classpath string[][]
---@param java_exec string
---@return JavaCoreDapLauncherConfig
---@return java_core.DapLauncherConfig
function M.get_dap_config(main, classpath, java_exec)
local project_name = main.projectName
local main_class = main.mainClass
Expand Down
6 changes: 3 additions & 3 deletions lua/java-core/dap/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ function M:get_dap_adapter()
end

---Returns the dap configuration for the current project
---@return JavaCoreDapLauncherConfig[] # dap configuration details
---@return java_core.DapLauncherConfig[] # dap configuration details
function M:get_dap_config()
log.info('creating dap configuration for java')

Expand All @@ -60,7 +60,7 @@ end

---Returns the dap config for the given main class
---@param main JavaDebugResolveMainClassRecord
---@return JavaCoreDapLauncherConfig # dap launch configuration record
---@return java_core.DapLauncherConfig # dap launch configuration record
function M:get_dap_config_record(main)
local classpaths =
self.java_debug:resolve_classpath(main.mainClass, main.projectName)
Expand Down Expand Up @@ -92,7 +92,7 @@ return M
---@field preLaunchTask? string
---@field postDebugTask? string

---@class JavaCoreDapLauncherConfig
---@class java_core.DapLauncherConfig
---@field name string
---@field type string
---@field request string
Expand Down
29 changes: 14 additions & 15 deletions lua/java-core/dap/runner.lua
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
local log = require('java-core.utils.log')

---@class JavaCoreDapRunner
---@field reporter JavaCoreDapRunReport
---@class java_core.DapRunner
---@field private server uv_tcp_t
local M = {}

---@param args { reporter: JavaCoreDapRunReport }
---@return JavaCoreDapRunner
function M:new(args)
---@return java_core.DapRunner
function M:new()
local o = {
reporter = args.reporter,
server = nil,
}

Expand All @@ -19,13 +16,14 @@ function M:new(args)
end

---Dap run with given config
---@param config JavaCoreDapLauncherConfig
function M:run_by_config(config)
---@param config java_core.DapLauncherConfig
---@param report java_test.JUnitTestReport
function M:run_by_config(config, report)
log.debug('running dap with config: ', config)

require('dap').run(config --[[@as Configuration]], {
before = function(conf)
return self:before(conf)
return self:before(conf, report)
end,

after = function()
Expand All @@ -36,9 +34,10 @@ end

---Runs before the dap run
---@private
---@param conf JavaCoreDapLauncherConfig
---@return JavaCoreDapLauncherConfig
function M:before(conf)
---@param conf java_core.DapLauncherConfig
---@param report java_test.JUnitTestReport
---@return java_core.DapLauncherConfig
function M:before(conf, report)
log.debug('running "before" callback')

self.server = assert(vim.loop.new_tcp(), 'uv.new_tcp() must return handle')
Expand All @@ -48,7 +47,7 @@ function M:before(conf)

local sock = assert(vim.loop.new_tcp(), 'uv.new_tcp must return handle')
self.server:accept(sock)
local success = sock:read_start(self.reporter:get_stream_reader(sock))
local success = sock:read_start(report:get_stream_reader(sock))
assert(success == 0, 'failed to listen to reader')
end)

Expand All @@ -72,5 +71,5 @@ end

return M

---@class JavaCoreDapRunReport
---@field get_stream_reader fun(self: JavaCoreDapRunReport, conn: uv_tcp_t): fun(err: string|nil, buffer: string|nil)
---@class java_core.DapRunReport
---@field get_stream_reader fun(self: java_core.DapRunReport, conn: uv_tcp_t): fun(err: string|nil, buffer: string|nil)
50 changes: 0 additions & 50 deletions lua/java-core/dap/test-report.lua

This file was deleted.

Loading