From 52da498093efdb2b539e1c852dd7b273b7b38b29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20L=C3=A9vesque?= Date: Sun, 28 Feb 2021 17:06:21 -0500 Subject: [PATCH 1/7] fix(test runner): Use ExUnit testPaths and testPattern --- .../providers/code_lens/test.ex | 20 +------ .../lib/language_server/server.ex | 56 ++++++++++++++++++- 2 files changed, 57 insertions(+), 19 deletions(-) diff --git a/apps/language_server/lib/language_server/providers/code_lens/test.ex b/apps/language_server/lib/language_server/providers/code_lens/test.ex index 27d891552..8b18e9499 100644 --- a/apps/language_server/lib/language_server/providers/code_lens/test.ex +++ b/apps/language_server/lib/language_server/providers/code_lens/test.ex @@ -79,8 +79,7 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.Test do runnable_functions = [{:test, 3}, {:test, 2}] for func <- runnable_functions, - {line, _col} <- calls_to(calls_list, func), - is_test_module?(lines_to_env_list, line) do + {line, _col} <- calls_to(calls_list, func) do {_line, %{scope_id: scope_id}} = Enum.find(lines_to_env_list, fn {env_line, _env} -> env_line == line end) @@ -101,8 +100,7 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.Test do defp find_describe_blocks(lines_to_env_list, calls_list, source_lines) do lines_to_env_list_length = length(lines_to_env_list) - for {line, _col} <- calls_to(calls_list, {:describe, 2}), - is_test_module?(lines_to_env_list, line) do + for {line, _col} <- calls_to(calls_list, {:describe, 2}) do DescribeBlock.find_block_info( line, lines_to_env_list, @@ -126,23 +124,9 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.Test do defp get_test_modules(lines_to_env) do lines_to_env |> Enum.group_by(fn {_line, env} -> env.module end) - |> Enum.filter(fn {_module, module_lines_to_env} -> is_test_module?(module_lines_to_env) end) |> Enum.map(fn {module, [{line, _env} | _rest]} -> {module, line} end) end - defp is_test_module?(lines_to_env), do: is_test_module?(lines_to_env, :infinity) - - defp is_test_module?(lines_to_env, line) when is_list(lines_to_env) do - lines_to_env - |> Enum.max_by(fn - {env_line, _env} when env_line < line -> env_line - _ -> -1 - end) - |> elem(1) - |> Map.get(:imports) - |> Enum.any?(fn module -> module == ExUnit.Case end) - end - defp calls_to(calls_list, {function, arity}) do for call_info <- calls_list, call_info.func == function and call_info.arity === arity do diff --git a/apps/language_server/lib/language_server/server.ex b/apps/language_server/lib/language_server/server.ex index bc4aa62fe..d34100bf6 100644 --- a/apps/language_server/lib/language_server/server.ex +++ b/apps/language_server/lib/language_server/server.ex @@ -805,13 +805,67 @@ defmodule ElixirLS.LanguageServer.Server do end defp get_test_code_lenses(state, uri, source_file) do - if state.settings["enableTestLenses"] == true do + get_test_code_lenses( + state, + uri, + source_file, + state.settings["enableTestLenses"], + Mix.Project.umbrella?() + ) + end + + defp get_test_code_lenses(_state, _uri, _source_file, false, _), do: {:ok, []} + + defp get_test_code_lenses(state, uri, source_file, true = _enabled, true = _umbrella) do + file_path = SourceFile.path_from_uri(uri) + + Mix.Project.apps_paths() + |> Enum.find(fn {_app, app_path} -> String.contains?(file_path, app_path) end) + |> case do + nil -> + {:ok, []} + + {app, app_path} -> + if is_test_file?(file_path, state, app, app_path) do + CodeLens.test_code_lens(uri, source_file.text, "#{state.project_dir}/#{app_path}") + else + {:ok, []} + end + end + end + + defp get_test_code_lenses(state, uri, source_file, true = _enabled, false = _umbrella) do + file_path = SourceFile.path_from_uri(uri) + + if is_test_file?(file_path) do CodeLens.test_code_lens(uri, source_file.text, state.project_dir) else {:ok, []} end end + defp is_test_file?(file_path, state, app, app_path) do + app_name = Atom.to_string(app) + + test_paths = + (get_in(state.settings, ["testPaths", app_name]) || ["test"]) + |> Enum.map(fn path -> "#{app_path}/#{path}" end) + + test_pattern = get_in(state.settings, ["testPattern", app_name]) || "*_test.exs" + + Mix.Utils.extract_files(test_paths, test_pattern) + |> Enum.any?(fn path -> String.ends_with?(file_path, path) end) + end + + defp is_test_file?(file_path) do + test_paths = Mix.Project.config()[:testPath] || ["test"] + test_pattern = Mix.Project.config()[:testPattern] || "*_test.exs" + + Mix.Utils.extract_files(test_paths, test_pattern) + |> Enum.map(&Path.absname/1) + |> Enum.any?(&(&1 == file_path)) + end + # Build defp trigger_build(state) do From d2b82f4c2a0c8e6e9372652a1e4cbde09abce2a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20L=C3=A9vesque?= Date: Sat, 3 Apr 2021 16:06:36 -0400 Subject: [PATCH 2/7] Handle bad URI format --- apps/language_server/lib/language_server/server.ex | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/language_server/lib/language_server/server.ex b/apps/language_server/lib/language_server/server.ex index d34100bf6..5cbb41db1 100644 --- a/apps/language_server/lib/language_server/server.ex +++ b/apps/language_server/lib/language_server/server.ex @@ -835,12 +835,16 @@ defmodule ElixirLS.LanguageServer.Server do end defp get_test_code_lenses(state, uri, source_file, true = _enabled, false = _umbrella) do - file_path = SourceFile.path_from_uri(uri) + try do + file_path = SourceFile.path_from_uri(uri) - if is_test_file?(file_path) do - CodeLens.test_code_lens(uri, source_file.text, state.project_dir) - else - {:ok, []} + if is_test_file?(file_path) do + CodeLens.test_code_lens(uri, source_file.text, state.project_dir) + else + {:ok, []} + end + rescue + _ in ArgumentError -> {:ok, []} end end From 82b0bfc4a1bf4be07cae4050af0982054210b0bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20L=C3=A9vesque?= Date: Sun, 4 Apr 2021 10:41:33 -0400 Subject: [PATCH 3/7] Add tests for test_paths and test_pattern --- .../lib/language_server/server.ex | 8 +- .../custom_path/fixture_custom_test.exs | 7 + .../mix.exs | 14 ++ .../app1/custom_path/fixture_custom_test.exs | 7 + .../apps/app1/mix.exs | 14 ++ .../mix.exs | 7 + .../test/providers/code_lens/test_test.exs | 13 -- apps/language_server/test/server_test.exs | 139 ++++++++++++++++++ 8 files changed, 192 insertions(+), 17 deletions(-) create mode 100644 apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/custom_path/fixture_custom_test.exs create mode 100644 apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/mix.exs create mode 100644 apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs create mode 100644 apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/mix.exs create mode 100644 apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/mix.exs diff --git a/apps/language_server/lib/language_server/server.ex b/apps/language_server/lib/language_server/server.ex index 5cbb41db1..73cb34aa7 100644 --- a/apps/language_server/lib/language_server/server.ex +++ b/apps/language_server/lib/language_server/server.ex @@ -809,7 +809,7 @@ defmodule ElixirLS.LanguageServer.Server do state, uri, source_file, - state.settings["enableTestLenses"], + state.settings["enableTestLenses"] || false, Mix.Project.umbrella?() ) end @@ -853,7 +853,7 @@ defmodule ElixirLS.LanguageServer.Server do test_paths = (get_in(state.settings, ["testPaths", app_name]) || ["test"]) - |> Enum.map(fn path -> "#{app_path}/#{path}" end) + |> Enum.map(fn path -> Path.join([state.project_dir, app_path, path]) end) test_pattern = get_in(state.settings, ["testPattern", app_name]) || "*_test.exs" @@ -862,8 +862,8 @@ defmodule ElixirLS.LanguageServer.Server do end defp is_test_file?(file_path) do - test_paths = Mix.Project.config()[:testPath] || ["test"] - test_pattern = Mix.Project.config()[:testPattern] || "*_test.exs" + test_paths = Mix.Project.config()[:test_paths] || ["test"] + test_pattern = Mix.Project.config()[:test_pattern] || "*_test.exs" Mix.Utils.extract_files(test_paths, test_pattern) |> Enum.map(&Path.absname/1) diff --git a/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/custom_path/fixture_custom_test.exs b/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/custom_path/fixture_custom_test.exs new file mode 100644 index 000000000..3b3b7e7bf --- /dev/null +++ b/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/custom_path/fixture_custom_test.exs @@ -0,0 +1,7 @@ +defmodule TestCodeLensTest do + use ExUnit.Case + + test "fixture test" do + assert true + end +end diff --git a/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/mix.exs b/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/mix.exs new file mode 100644 index 000000000..510e40ce8 --- /dev/null +++ b/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/mix.exs @@ -0,0 +1,14 @@ +defmodule TestCodeLens.MixProject do + use Mix.Project + + def project do + [ + app: :test_code_lens_custom_paths_and_pattern, + version: "0.1.0", + test_paths: ["custom_path"], + test_pattern: "*_custom_test.exs" + ] + end + + def application, do: [] +end diff --git a/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs b/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs new file mode 100644 index 000000000..3b3b7e7bf --- /dev/null +++ b/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs @@ -0,0 +1,7 @@ +defmodule TestCodeLensTest do + use ExUnit.Case + + test "fixture test" do + assert true + end +end diff --git a/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/mix.exs b/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/mix.exs new file mode 100644 index 000000000..7bcab07a9 --- /dev/null +++ b/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/mix.exs @@ -0,0 +1,14 @@ +defmodule App1.Mixfile do + use Mix.Project + + def project do + [ + app: :app1, + version: "0.1.0" + ] + end + + def application do + [] + end +end diff --git a/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/mix.exs b/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/mix.exs new file mode 100644 index 000000000..d8410c2d3 --- /dev/null +++ b/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/mix.exs @@ -0,0 +1,7 @@ +defmodule Umbrella.Mixfile do + use Mix.Project + + def project do + [apps_path: "apps"] + end +end diff --git a/apps/language_server/test/providers/code_lens/test_test.exs b/apps/language_server/test/providers/code_lens/test_test.exs index 4938e8aa4..6912dae40 100644 --- a/apps/language_server/test/providers/code_lens/test_test.exs +++ b/apps/language_server/test/providers/code_lens/test_test.exs @@ -70,19 +70,6 @@ defmodule ElixirLS.LanguageServer.Providers.CodeLens.TestTest do ] end - test "does not return lenses for modules that don't import ExUnit.case" do - uri = "file:///project/file.ex" - - text = """ - defmodule MyModule do - end - """ - - {:ok, lenses} = CodeLens.Test.code_lens(uri, text, @project_dir) - - assert lenses == [] - end - test "returns lenses for all describe blocks" do uri = "file:///project/file.ex" diff --git a/apps/language_server/test/server_test.exs b/apps/language_server/test/server_test.exs index c96a67f4f..8499fcd48 100644 --- a/apps/language_server/test/server_test.exs +++ b/apps/language_server/test/server_test.exs @@ -1242,6 +1242,145 @@ defmodule ElixirLS.LanguageServer.ServerTest do end) end + @tag :fixture + test "returns code lenses for runnable tests with custom test paths and test pattern", %{ + server: server + } do + in_fixture(__DIR__, "test_code_lens_custom_paths_and_pattern", fn -> + file_path = "custom_path/fixture_custom_test.exs" + file_uri = SourceFile.path_to_uri(file_path) + file_absolute_path = SourceFile.path_from_uri(file_uri) + text = File.read!(file_path) + project_dir = SourceFile.path_from_uri(root_uri()) + + initialize(server) + + Server.receive_packet( + server, + did_change_configuration(%{"elixirLS" => %{"enableTestLenses" => true}}) + ) + + Server.receive_packet(server, did_open(file_uri, "elixir", 1, text)) + + Server.receive_packet( + server, + code_lens_req(4, file_uri) + ) + + resp = assert_receive(%{"id" => 4}, 5000) + + assert response(4, [ + %{ + "command" => %{ + "arguments" => [ + %{ + "filePath" => ^file_absolute_path, + "testName" => "fixture test", + "projectDir" => ^project_dir + } + ], + "command" => "elixir.lens.test.run", + "title" => "Run test" + }, + "range" => %{ + "end" => %{"character" => 0, "line" => 3}, + "start" => %{"character" => 0, "line" => 3} + } + }, + %{ + "command" => %{ + "arguments" => [ + %{ + "filePath" => ^file_absolute_path, + "module" => "Elixir.TestCodeLensTest", + "projectDir" => ^project_dir + } + ], + "command" => "elixir.lens.test.run", + "title" => "Run tests in module" + }, + "range" => %{ + "end" => %{"character" => 0, "line" => 0}, + "start" => %{"character" => 0, "line" => 0} + } + } + ]) = resp + end) + end + + @tag :fixture + test "returns code lenses for runnable tests with custom test paths and test pattern in umbrella apps", + %{ + server: server + } do + in_fixture(__DIR__, "umbrella_code_lens_custom_path_and_pattern", fn -> + file_path = "apps/app1/custom_path/fixture_custom_test.exs" + file_uri = SourceFile.path_to_uri(file_path) + file_absolute_path = SourceFile.path_from_uri(file_uri) + text = File.read!(file_path) + project_dir = SourceFile.path_from_uri("#{root_uri()}/apps/app1") + + initialize(server) + + Server.receive_packet( + server, + did_change_configuration(%{ + "elixirLS" => %{ + "enableTestLenses" => true, + "testPaths" => %{"app1" => ["custom_path"]}, + "testPattern" => %{"app1" => "*_custom_test.exs"} + } + }) + ) + + Server.receive_packet(server, did_open(file_uri, "elixir", 1, text)) + + Server.receive_packet( + server, + code_lens_req(4, file_uri) + ) + + resp = assert_receive(%{"id" => 4}, 5000) + + assert response(4, [ + %{ + "command" => %{ + "arguments" => [ + %{ + "filePath" => ^file_absolute_path, + "testName" => "fixture test", + "projectDir" => ^project_dir + } + ], + "command" => "elixir.lens.test.run", + "title" => "Run test" + }, + "range" => %{ + "end" => %{"character" => 0, "line" => 3}, + "start" => %{"character" => 0, "line" => 3} + } + }, + %{ + "command" => %{ + "arguments" => [ + %{ + "filePath" => ^file_absolute_path, + "module" => "Elixir.TestCodeLensTest", + "projectDir" => ^project_dir + } + ], + "command" => "elixir.lens.test.run", + "title" => "Run tests in module" + }, + "range" => %{ + "end" => %{"character" => 0, "line" => 0}, + "start" => %{"character" => 0, "line" => 0} + } + } + ]) = resp + end) + end + defp with_new_server(func) do server = start_supervised!({Server, nil}) packet_capture = start_supervised!({PacketCapture, self()}) From c44f8775e8370e7f528c9b9a9e63093fb8c79e85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20L=C3=A9vesque?= Date: Sun, 4 Apr 2021 11:06:59 -0400 Subject: [PATCH 4/7] Make all fixture apps unique --- .../custom_path/fixture_custom_test.exs | 2 +- .../test_code_lens_custom_paths_and_pattern/mix.exs | 2 +- .../apps/app1/custom_path/fixture_custom_test.exs | 2 +- .../apps/app1/mix.exs | 2 +- .../mix.exs | 2 +- apps/language_server/test/server_test.exs | 6 +++--- 6 files changed, 8 insertions(+), 8 deletions(-) rename apps/language_server/test/fixtures/{umbrella_code_lens_custom_path_and_pattern => umbrella_test_code_lens_custom_path_and_pattern}/apps/app1/custom_path/fixture_custom_test.exs (54%) rename apps/language_server/test/fixtures/{umbrella_code_lens_custom_path_and_pattern => umbrella_test_code_lens_custom_path_and_pattern}/apps/app1/mix.exs (67%) rename apps/language_server/test/fixtures/{umbrella_code_lens_custom_path_and_pattern => umbrella_test_code_lens_custom_path_and_pattern}/mix.exs (53%) diff --git a/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/custom_path/fixture_custom_test.exs b/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/custom_path/fixture_custom_test.exs index 3b3b7e7bf..4151c980c 100644 --- a/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/custom_path/fixture_custom_test.exs +++ b/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/custom_path/fixture_custom_test.exs @@ -1,4 +1,4 @@ -defmodule TestCodeLensTest do +defmodule TestCodeLensCustomPathsAndPatternTest do use ExUnit.Case test "fixture test" do diff --git a/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/mix.exs b/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/mix.exs index 510e40ce8..c94020c86 100644 --- a/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/mix.exs +++ b/apps/language_server/test/fixtures/test_code_lens_custom_paths_and_pattern/mix.exs @@ -1,4 +1,4 @@ -defmodule TestCodeLens.MixProject do +defmodule TestCodeLensCustomPathsAndPattern.MixProject do use Mix.Project def project do diff --git a/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs b/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs similarity index 54% rename from apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs rename to apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs index 3b3b7e7bf..9380c735f 100644 --- a/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs +++ b/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/custom_path/fixture_custom_test.exs @@ -1,4 +1,4 @@ -defmodule TestCodeLensTest do +defmodule UmbrellaTestCodeLensCustomPathAndPatternTest do use ExUnit.Case test "fixture test" do diff --git a/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/mix.exs b/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/mix.exs similarity index 67% rename from apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/mix.exs rename to apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/mix.exs index 7bcab07a9..08e9fcafd 100644 --- a/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/apps/app1/mix.exs +++ b/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/mix.exs @@ -1,4 +1,4 @@ -defmodule App1.Mixfile do +defmodule UmbrellaTestCodeLensCustomPathAndPatternApp1.Mixfile do use Mix.Project def project do diff --git a/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/mix.exs b/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/mix.exs similarity index 53% rename from apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/mix.exs rename to apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/mix.exs index d8410c2d3..00a61ff69 100644 --- a/apps/language_server/test/fixtures/umbrella_code_lens_custom_path_and_pattern/mix.exs +++ b/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/mix.exs @@ -1,4 +1,4 @@ -defmodule Umbrella.Mixfile do +defmodule UmbrellaTestCodeLensCustomPathAndPattern.Mixfile do use Mix.Project def project do diff --git a/apps/language_server/test/server_test.exs b/apps/language_server/test/server_test.exs index 3862eb605..b665db47e 100644 --- a/apps/language_server/test/server_test.exs +++ b/apps/language_server/test/server_test.exs @@ -1324,7 +1324,7 @@ defmodule ElixirLS.LanguageServer.ServerTest do "arguments" => [ %{ "filePath" => ^file_absolute_path, - "module" => "Elixir.TestCodeLensTest", + "module" => "Elixir.TestCodeLensCustomPathsAndPatternTest", "projectDir" => ^project_dir } ], @@ -1345,7 +1345,7 @@ defmodule ElixirLS.LanguageServer.ServerTest do %{ server: server } do - in_fixture(__DIR__, "umbrella_code_lens_custom_path_and_pattern", fn -> + in_fixture(__DIR__, "umbrella_test_code_lens_custom_path_and_pattern", fn -> file_path = "apps/app1/custom_path/fixture_custom_test.exs" file_uri = SourceFile.path_to_uri(file_path) file_absolute_path = SourceFile.path_from_uri(file_uri) @@ -1397,7 +1397,7 @@ defmodule ElixirLS.LanguageServer.ServerTest do "arguments" => [ %{ "filePath" => ^file_absolute_path, - "module" => "Elixir.TestCodeLensTest", + "module" => "Elixir.UmbrellaTestCodeLensCustomPathAndPatternTest", "projectDir" => ^project_dir } ], From e2951026ac1e273b514cdc4f4c6a42f2f035f0a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20L=C3=A9vesque?= Date: Sun, 4 Apr 2021 20:41:43 -0400 Subject: [PATCH 5/7] Rename umbrella app to match filesystem --- .../apps/app1/mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/mix.exs b/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/mix.exs index 08e9fcafd..7bcab07a9 100644 --- a/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/mix.exs +++ b/apps/language_server/test/fixtures/umbrella_test_code_lens_custom_path_and_pattern/apps/app1/mix.exs @@ -1,4 +1,4 @@ -defmodule UmbrellaTestCodeLensCustomPathAndPatternApp1.Mixfile do +defmodule App1.Mixfile do use Mix.Project def project do From 4bec27edd14b552ae087c8a5b6c2822ec3ab42f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20L=C3=A9vesque?= Date: Sun, 4 Apr 2021 20:53:40 -0400 Subject: [PATCH 6/7] wait for compilation after tests --- apps/language_server/test/server_test.exs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/language_server/test/server_test.exs b/apps/language_server/test/server_test.exs index b665db47e..967cb5c60 100644 --- a/apps/language_server/test/server_test.exs +++ b/apps/language_server/test/server_test.exs @@ -1337,6 +1337,8 @@ defmodule ElixirLS.LanguageServer.ServerTest do } } ]) = resp + + wait_until_compiled(server) end) end @@ -1410,6 +1412,8 @@ defmodule ElixirLS.LanguageServer.ServerTest do } } ]) = resp + + wait_until_compiled(server) end) end From 8cd5ad90ea2dc5d69ad80d0dfb109e54072508c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20L=C3=A9vesque?= Date: Sun, 4 Apr 2021 21:08:38 -0400 Subject: [PATCH 7/7] wait for compilation before code lens request --- apps/language_server/test/server_test.exs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/language_server/test/server_test.exs b/apps/language_server/test/server_test.exs index 967cb5c60..37ca702e7 100644 --- a/apps/language_server/test/server_test.exs +++ b/apps/language_server/test/server_test.exs @@ -1294,6 +1294,8 @@ defmodule ElixirLS.LanguageServer.ServerTest do Server.receive_packet(server, did_open(file_uri, "elixir", 1, text)) + wait_until_compiled(server) + Server.receive_packet( server, code_lens_req(4, file_uri) @@ -1337,8 +1339,6 @@ defmodule ElixirLS.LanguageServer.ServerTest do } } ]) = resp - - wait_until_compiled(server) end) end @@ -1369,6 +1369,8 @@ defmodule ElixirLS.LanguageServer.ServerTest do Server.receive_packet(server, did_open(file_uri, "elixir", 1, text)) + wait_until_compiled(server) + Server.receive_packet( server, code_lens_req(4, file_uri) @@ -1412,8 +1414,6 @@ defmodule ElixirLS.LanguageServer.ServerTest do } } ]) = resp - - wait_until_compiled(server) end) end