Skip to content

Commit

Permalink
Use test item framework
Browse files Browse the repository at this point in the history
  • Loading branch information
davidanthoff committed Sep 7, 2022
1 parent a791811 commit 0d3ae2a
Show file tree
Hide file tree
Showing 21 changed files with 816 additions and 683 deletions.
3 changes: 2 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ SHA = "ea8e919c-243c-51af-8825-aaa63cd721ce"
LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Sockets = "6462fe0b-24de-5631-8697-dd941f90decc"
TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a"

[compat]
JSON = "0.20, 0.21"
Expand All @@ -35,4 +36,4 @@ JSONRPC = "1.1"
SymbolServer = "7.1"

[targets]
test = ["Test", "Sockets", "LibGit2", "Serialization", "SHA"]
test = ["Test", "Sockets", "LibGit2", "Serialization", "SHA", "TestItemRunner"]
58 changes: 0 additions & 58 deletions test/requests/hover.jl

This file was deleted.

48 changes: 35 additions & 13 deletions test/requests/actions.jl → test/requests/test_actions.jl
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
action_request_test(line0, char0, line1=line0, char1=char0; diags=[]) = LanguageServer.textDocument_codeAction_request(LanguageServer.CodeActionParams(LanguageServer.TextDocumentIdentifier(uri"untitled:testdoc"), LanguageServer.Range(LanguageServer.Position(line0, char0), LanguageServer.Position(line1, char1)), LanguageServer.CodeActionContext(diags, missing)), server, server.jr_endpoint)
@testitem "reexport" begin
include("../test_shared_server.jl")

@testset "reexport" begin
settestdoc("using Base.Meta\n")
@test any(c.command == "ReexportModule" for c in action_request_test(0, 15))
c = filter(c -> c.command == "ReexportModule", action_request_test(0, 15))[1]

LanguageServer.workspace_executeCommand_request(LanguageServer.ExecuteCommandParams(missing, c.command, c.arguments), server, server.jr_endpoint)
end

@testset "inline expand" begin
@testitem "inline expand" begin
include("../test_shared_server.jl")

settestdoc("f(x) = x")
@test any(c.command == "ExpandFunction" for c in action_request_test(0, 5))
c = filter(c -> c.command == "ExpandFunction", action_request_test(0, 5))[1]
Expand All @@ -26,7 +28,9 @@ end
LanguageServer.workspace_executeCommand_request(LanguageServer.ExecuteCommandParams(missing, c.command, c.arguments), server, server.jr_endpoint)
end

@testset "fixmissingref" begin
@testitem "fixmissingref" begin
include("../test_shared_server.jl")

doc = settestdoc("argtail\n")
e = LanguageServer.mark_errors(doc)[1]
@test any(c.command == "FixMissingRef" for c in action_request_test(0, 5, diags=[e]))
Expand All @@ -35,7 +39,9 @@ end
LanguageServer.workspace_executeCommand_request(LanguageServer.ExecuteCommandParams(missing, c.command, c.arguments), server, server.jr_endpoint)
end

@testset "explicit import" begin
@testitem "explicit import" begin
include("../test_shared_server.jl")

doc = settestdoc("using Base.Meta\nMeta.quot")
@test LanguageServer.find_using_statement(doc.cst.args[2].args[1]) !== nothing

Expand All @@ -45,7 +51,9 @@ end
LanguageServer.workspace_executeCommand_request(LanguageServer.ExecuteCommandParams(missing, c.command, c.arguments), server, server.jr_endpoint)
end

@testset "farg unused" begin
@testitem "farg unused" begin
include("../test_shared_server.jl")

doc = settestdoc("function f(arg::T) end\n")

@test any(c.command == "DeleteUnusedFunctionArgumentName" for c in action_request_test(0, 12))
Expand All @@ -54,7 +62,9 @@ end
LanguageServer.workspace_executeCommand_request(LanguageServer.ExecuteCommandParams(missing, c.command, c.arguments), server, server.jr_endpoint)
end

@testset "unused assignment" begin
@testitem "unused assignment" begin
include("../test_shared_server.jl")

doc = settestdoc("function f()\n x = 1 + 2\n return 3\nend\n")

@test any(c.command == "ReplaceUnusedAssignmentName" for c in action_request_test(1, 4))
Expand All @@ -63,7 +73,9 @@ end
LanguageServer.workspace_executeCommand_request(LanguageServer.ExecuteCommandParams(missing, c.command, c.arguments), server, server.jr_endpoint)
end

@testset "===/!== for nothing comparison" begin
@testitem "===/!== for nothing comparison" begin
include("../test_shared_server.jl")

for str in ("x = 1\nif x == nothing end", "x = 1\nif x != nothing end")
doc = settestdoc(str)
@test any(c.command == "CompareNothingWithTripleEqual" for c in action_request_test(1, 6))
Expand All @@ -72,7 +84,9 @@ end
end
end

@testset "Add license header" begin
@testitem "Add license header" begin
include("../test_shared_server.jl")

doc = settestdoc("hello\nworld\n")

@test !any(c.command == "AddLicenseIdentifier" for c in action_request_test(1, 1))
Expand All @@ -83,7 +97,9 @@ end
LanguageServer.workspace_executeCommand_request(LanguageServer.ExecuteCommandParams(missing, c.command, c.arguments), server, server.jr_endpoint)
end

@testset "Organize imports" begin
@testitem "Organize imports" begin
include("../test_shared_server.jl")

doc = settestdoc("using JSON\nusing Example: foo, bar\nf(x) = x\n")

@test any(c.command == "OrganizeImports" for c in action_request_test(0, 1))
Expand All @@ -98,7 +114,9 @@ end
LanguageServer.workspace_executeCommand_request(LanguageServer.ExecuteCommandParams(missing, c.command, c.arguments), server, server.jr_endpoint)
end

@testset "Convert between string and raw strings" begin
@testitem "Convert between string and raw strings" begin
include("../test_shared_server.jl")

# "..." -> raw"..."
doc = settestdoc("""
"this is fine"
Expand Down Expand Up @@ -154,7 +172,9 @@ end
@test repr(raw_str) == str
end

@testset "Add docstring template" begin
@testitem "Add docstring template" begin
include("../test_shared_server.jl")

doc = settestdoc("""
f(x) = x
Expand Down Expand Up @@ -198,7 +218,9 @@ end
LanguageServer.workspace_executeCommand_request(LanguageServer.ExecuteCommandParams(missing, c.command, c.arguments), server, server.jr_endpoint)
end

@testset "Update docstring signature" begin
@testitem "Update docstring signature" begin
include("../test_shared_server.jl")

doc = settestdoc("""
"hello"
f(x) = x
Expand Down
30 changes: 21 additions & 9 deletions test/requests/completions.jl → test/requests/test_completions.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
completion_test(line, char) = LanguageServer.textDocument_completion_request(LanguageServer.CompletionParams(LanguageServer.TextDocumentIdentifier(uri"untitled:testdoc"), LanguageServer.Position(line, char), missing), server, server.jr_endpoint)
@testitem "latex completions" begin
include("../test_shared_server.jl")

@testset "latex completions" begin
settestdoc("""
\\therefor
.\\therefor
Expand Down Expand Up @@ -32,10 +32,12 @@ completion_test(line, char) = LanguageServer.textDocument_completion_request(Lan
@test completion_test(6, 14).items[1].textEdit.range == LanguageServer.Range(6, 0, 6, 14)
end

@testset "path completions" begin
@testitem "path completions" begin
end

@testset "import completions" begin
@testitem "import completions" begin
include("../test_shared_server.jl")

settestdoc("import Base: r")
@test any(item.label == "rand" for item in completion_test(0, 14).items)

Expand All @@ -56,7 +58,9 @@ end
@test any(item.label == "Base" for item in completion_test(0, 10).items)
end

@testset "getfield completions" begin
@testitem "getfield completions" begin
include("../test_shared_server.jl")

settestdoc("Base.")
@test any(item.label == "Base" for item in completion_test(0, 5).items)

Expand Down Expand Up @@ -94,7 +98,9 @@ end
@test all(item.label in ("f1", "f2") for item in completion_test(1, 2).items)
end

@testset "token completions" begin
@testitem "token completions" begin
include("../test_shared_server.jl")

settestdoc("B")
@test any(item.label == "Base" for item in completion_test(0, 1).items)

Expand Down Expand Up @@ -135,7 +141,9 @@ end
@test any(item.label == "@foobar_str" for item in completion_test(1, 5).items)
end

@testset "scope var completions" begin
@testitem "scope var completions" begin
include("../test_shared_server.jl")

settestdoc("""
myvar = 1
βbb = 2
Expand All @@ -149,7 +157,9 @@ end
@test any(item.label == "bβb" for item in completion_test(5, 2).items)
end

@testset "completion kinds" begin
@testitem "completion kinds" begin
include("../test_shared_server.jl")

Kinds = LanguageServer.CompletionItemKinds
# issue #872
settestdoc("""
Expand All @@ -163,7 +173,9 @@ end
@test any(i -> i.label == "kind_variable_arg" && i.kind == Kinds.Variable, items)
end

@testset "completion details" begin
@testitem "completion details" begin
include("../test_shared_server.jl")

settestdoc("""
struct Bar end
struct Foo
Expand Down
31 changes: 17 additions & 14 deletions test/requests/features.jl → test/requests/test_features.jl
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
sig_test(line, char) = LanguageServer.textDocument_signatureHelp_request(LanguageServer.TextDocumentPositionParams(LanguageServer.TextDocumentIdentifier(uri"untitled:testdoc"), LanguageServer.Position(line, char)), server, server.jr_endpoint)
@testitem "signatures" begin
include("../test_shared_server.jl")

def_test(line, char) = LanguageServer.textDocument_definition_request(LanguageServer.TextDocumentPositionParams(LanguageServer.TextDocumentIdentifier(uri"untitled:testdoc"), LanguageServer.Position(line, char)), server, server.jr_endpoint)

ref_test(line, char) = LanguageServer.textDocument_references_request(LanguageServer.ReferenceParams(LanguageServer.TextDocumentIdentifier(uri"untitled:testdoc"), LanguageServer.Position(line, char), missing, missing, LanguageServer.ReferenceContext(true)), server, server.jr_endpoint)

rename_test(line, char) = LanguageServer.textDocument_rename_request(LanguageServer.RenameParams(LanguageServer.TextDocumentIdentifier(uri"untitled:testdoc"), LanguageServer.Position(line, char), missing, "newname"), server, server.jr_endpoint)


@testset "signatures" begin
doc = settestdoc("""
rand()
Base.rand()
Expand Down Expand Up @@ -54,7 +47,9 @@ rename_test(line, char) = LanguageServer.textDocument_rename_request(LanguageSer
end
end

@testset "definitions" begin
@testitem "definitions" begin
include("../test_shared_server.jl")

settestdoc("""
rand()
func(arg) = 1
Expand All @@ -66,31 +61,39 @@ end
@test !isempty(def_test(3, 3))
end

@testset "references" begin
@testitem "references" begin
include("../test_shared_server.jl")

settestdoc("""
func(arg) = 1
func()
""")
@test length(ref_test(1, 2)) == 2
end

@testset "rename" begin
@testitem "rename" begin
include("../test_shared_server.jl")

settestdoc("""
func(arg) = 1
func()
""")
@test length(rename_test(0, 2).documentChanges[1].edits) == 2
end

@testset "get_file_loc" begin
@testitem "get_file_loc" begin
include("../test_shared_server.jl")

doc = settestdoc("""
func(arg) = 1
func()
""")
@test LanguageServer.get_file_loc(doc.cst.args[2].args[1]) == (doc, 14)
end

@testset "doc symbols" begin
@testitem "doc symbols" begin
include("../test_shared_server.jl")

doc = settestdoc("""
a = 1
b = 2
Expand Down
Loading

0 comments on commit 0d3ae2a

Please sign in to comment.