Skip to content

Commit d3c0dc6

Browse files
authored
feat: test report (#30)
1 parent 3e58a60 commit d3c0dc6

File tree

7 files changed

+324
-86
lines changed

7 files changed

+324
-86
lines changed

lua/java-core/adapters/init.lua

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
local jdtls_types = require('java-core.ls.servers.jdtls.jdtls-types')
2-
31
local List = require('java-core.utils.list')
42
local Set = require('java-core.utils.set')
53
local JavaTestClient = require('java-core.ls.clients.java-test-client')
@@ -10,7 +8,7 @@ local M = {}
108
---@param launch_args JavaCoreTestJunitLaunchArguments
119
---@param java_exec string
1210
---@param config { debug: boolean, label: string }
13-
---@return JavaCoreDapLauncherConfig
11+
---@return java_core.DapLauncherConfig
1412
function M.get_dap_launcher_config(launch_args, java_exec, config)
1513
return {
1614
name = config.label,

lua/java-core/api/test.lua

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
local log = require('java-core.utils.log')
22
local data_adapters = require('java-core.adapters')
33

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

9-
---@class JavaCoreTestApi
7+
---@class java_core.TestApi
108
---@field private client java_core.JdtlsClient
119
---@field private debug_client JavaCoreDebugClient
1210
---@field private test_client java_core.TestClient
13-
---@field private runner JavaCoreDapRunner
11+
---@field private runner java_core.DapRunner
1412
local M = {}
1513

1614
---Returns a new test helper client
17-
---@param args { client: LspClient }
18-
---@return JavaCoreTestApi
15+
---@param args { client: LspClient, runner: java_core.DapRunner }
16+
---@return java_core.TestApi
1917
function M:new(args)
2018
local o = {
2119
client = args.client,
@@ -29,9 +27,7 @@ function M:new(args)
2927
client = args.client,
3028
})
3129

32-
o.runner = JavaDapRunner:new({
33-
reporter = TestReport:new(),
34-
})
30+
o.runner = args.runner
3531

3632
setmetatable(o, self)
3733
self.__index = self
@@ -60,9 +56,14 @@ end
6056
---Runs the test class in the given buffer
6157
---@param buffer integer
6258
---@param config JavaCoreDapLauncherConfigOverridable
63-
function M:run_class_by_buffer(buffer, config)
59+
60+
---comment
61+
---@param buffer number
62+
---@param report java_test.JUnitTestReport
63+
---@param config? JavaCoreDapLauncherConfigOverridable config to override the default values in test launcher config
64+
function M:run_class_by_buffer(buffer, report, config)
6465
local tests = self:get_test_class_by_buffer(buffer)
65-
self:run_test(tests, config)
66+
self:run_test(tests, report, config)
6667
end
6768

6869
---Returns test classes in the given buffer
@@ -78,9 +79,9 @@ end
7879

7980
---Run the given test
8081
---@param tests java_core.TestDetails[]
82+
---@param report java_test.JUnitTestReport
8183
---@param config? JavaCoreDapLauncherConfigOverridable config to override the default values in test launcher config
82-
function M:run_test(tests, config)
83-
---@type JavaCoreTestJunitLaunchArguments
84+
function M:run_test(tests, report, config)
8485
local launch_args = self.test_client:resolve_junit_launch_arguments(
8586
data_adapters.get_junit_launch_argument_params(tests)
8687
)
@@ -99,7 +100,7 @@ function M:run_test(tests, config)
99100
dap_launcher_config =
100101
vim.tbl_deep_extend('force', dap_launcher_config, config or {})
101102

102-
self.runner:run_by_config(dap_launcher_config)
103+
self.runner:run_by_config(dap_launcher_config, report)
103104
end
104105

105106
return M

lua/java-core/dap/adapters.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ local M = {}
44
---@param main JavaDebugResolveMainClassRecord
55
---@param classpath string[][]
66
---@param java_exec string
7-
---@return JavaCoreDapLauncherConfig
7+
---@return java_core.DapLauncherConfig
88
function M.get_dap_config(main, classpath, java_exec)
99
local project_name = main.projectName
1010
local main_class = main.mainClass

lua/java-core/dap/init.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ function M:get_dap_adapter()
4444
end
4545

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

@@ -60,7 +60,7 @@ end
6060

6161
---Returns the dap config for the given main class
6262
---@param main JavaDebugResolveMainClassRecord
63-
---@return JavaCoreDapLauncherConfig # dap launch configuration record
63+
---@return java_core.DapLauncherConfig # dap launch configuration record
6464
function M:get_dap_config_record(main)
6565
local classpaths =
6666
self.java_debug:resolve_classpath(main.mainClass, main.projectName)
@@ -92,7 +92,7 @@ return M
9292
---@field preLaunchTask? string
9393
---@field postDebugTask? string
9494

95-
---@class JavaCoreDapLauncherConfig
95+
---@class java_core.DapLauncherConfig
9696
---@field name string
9797
---@field type string
9898
---@field request string

lua/java-core/dap/runner.lua

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
local log = require('java-core.utils.log')
22

3-
---@class JavaCoreDapRunner
4-
---@field reporter JavaCoreDapRunReport
3+
---@class java_core.DapRunner
54
---@field private server uv_tcp_t
65
local M = {}
76

8-
---@param args { reporter: JavaCoreDapRunReport }
9-
---@return JavaCoreDapRunner
10-
function M:new(args)
7+
---@return java_core.DapRunner
8+
function M:new()
119
local o = {
12-
reporter = args.reporter,
1310
server = nil,
1411
}
1512

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

2118
---Dap run with given config
22-
---@param config JavaCoreDapLauncherConfig
23-
function M:run_by_config(config)
19+
---@param config java_core.DapLauncherConfig
20+
---@param report java_test.JUnitTestReport
21+
function M:run_by_config(config, report)
2422
log.debug('running dap with config: ', config)
2523

2624
require('dap').run(config --[[@as Configuration]], {
2725
before = function(conf)
28-
return self:before(conf)
26+
return self:before(conf, report)
2927
end,
3028

3129
after = function()
@@ -36,9 +34,10 @@ end
3634

3735
---Runs before the dap run
3836
---@private
39-
---@param conf JavaCoreDapLauncherConfig
40-
---@return JavaCoreDapLauncherConfig
41-
function M:before(conf)
37+
---@param conf java_core.DapLauncherConfig
38+
---@param report java_test.JUnitTestReport
39+
---@return java_core.DapLauncherConfig
40+
function M:before(conf, report)
4241
log.debug('running "before" callback')
4342

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

4948
local sock = assert(vim.loop.new_tcp(), 'uv.new_tcp must return handle')
5049
self.server:accept(sock)
51-
local success = sock:read_start(self.reporter:get_stream_reader(sock))
50+
local success = sock:read_start(report:get_stream_reader(sock))
5251
assert(success == 0, 'failed to listen to reader')
5352
end)
5453

@@ -72,5 +71,5 @@ end
7271

7372
return M
7473

75-
---@class JavaCoreDapRunReport
76-
---@field get_stream_reader fun(self: JavaCoreDapRunReport, conn: uv_tcp_t): fun(err: string|nil, buffer: string|nil)
74+
---@class java_core.DapRunReport
75+
---@field get_stream_reader fun(self: java_core.DapRunReport, conn: uv_tcp_t): fun(err: string|nil, buffer: string|nil)

lua/java-core/dap/test-report.lua

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)