init commit

This commit is contained in:
2026-03-09 23:09:46 -04:00
parent 5cbc493cc5
commit 5da77e3360
73 changed files with 9935 additions and 103 deletions
+86
View File
@@ -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 ---