init commit
This commit is contained in:
@@ -245,6 +245,92 @@ defmodule CljElixir.NReplTest do
|
||||
[response] = Handler.handle(%{"op" => "bogus", "id" => "1"}, manager)
|
||||
assert "unknown-op" in response["status"]
|
||||
end
|
||||
|
||||
test "eval returns actual ns after ns declaration", %{manager: manager} do
|
||||
[clone_resp] = Handler.handle(%{"op" => "clone", "id" => "1"}, manager)
|
||||
session = clone_resp["new-session"]
|
||||
|
||||
# Default ns is "user"
|
||||
responses =
|
||||
Handler.handle(
|
||||
%{"op" => "eval", "code" => "(+ 1 2)", "session" => session, "id" => "2"},
|
||||
manager
|
||||
)
|
||||
|
||||
values = Enum.filter(responses, &Map.has_key?(&1, "value"))
|
||||
assert hd(values)["ns"] == "user"
|
||||
|
||||
# After ns declaration, ns should update
|
||||
responses =
|
||||
Handler.handle(
|
||||
%{
|
||||
"op" => "eval",
|
||||
"code" => "(ns NReplNsTest)\n(defn hi [] :hey)",
|
||||
"session" => session,
|
||||
"id" => "3"
|
||||
},
|
||||
manager
|
||||
)
|
||||
|
||||
values = Enum.filter(responses, &Map.has_key?(&1, "value"))
|
||||
assert hd(values)["ns"] == "NReplNsTest"
|
||||
end
|
||||
|
||||
test "incremental def in ns via nrepl", %{manager: manager} do
|
||||
[clone_resp] = Handler.handle(%{"op" => "clone", "id" => "1"}, manager)
|
||||
session = clone_resp["new-session"]
|
||||
|
||||
# Set up namespace
|
||||
Handler.handle(
|
||||
%{
|
||||
"op" => "eval",
|
||||
"code" => "(ns NReplIncrTest)\n(defn foo [] :original)",
|
||||
"session" => session,
|
||||
"id" => "2"
|
||||
},
|
||||
manager
|
||||
)
|
||||
|
||||
# Add a new function without ns
|
||||
Handler.handle(
|
||||
%{
|
||||
"op" => "eval",
|
||||
"code" => "(defn bar [] :added)",
|
||||
"session" => session,
|
||||
"id" => "3"
|
||||
},
|
||||
manager
|
||||
)
|
||||
|
||||
# Both should work
|
||||
responses =
|
||||
Handler.handle(
|
||||
%{
|
||||
"op" => "eval",
|
||||
"code" => "(NReplIncrTest/bar)",
|
||||
"session" => session,
|
||||
"id" => "4"
|
||||
},
|
||||
manager
|
||||
)
|
||||
|
||||
values = Enum.filter(responses, &Map.has_key?(&1, "value"))
|
||||
assert hd(values)["value"] == ":added"
|
||||
|
||||
responses =
|
||||
Handler.handle(
|
||||
%{
|
||||
"op" => "eval",
|
||||
"code" => "(NReplIncrTest/foo)",
|
||||
"session" => session,
|
||||
"id" => "5"
|
||||
},
|
||||
manager
|
||||
)
|
||||
|
||||
values = Enum.filter(responses, &Map.has_key?(&1, "value"))
|
||||
assert hd(values)["value"] == ":original"
|
||||
end
|
||||
end
|
||||
|
||||
# --- TCP Integration Test ---
|
||||
|
||||
Reference in New Issue
Block a user