mirror of
https://github.com/safishamsi/graphify.git
synced 2026-10-14 16:09:26 +00:00
Add a test for cross file resolution through a split export
A single name import must resolve to its own split node, and a call
made through it must resolve too, not just the import edge on its
own.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017qfdzgbA5KedGEjD1AayNh
(cherry picked from commit 78a3ca4bf7)
This commit is contained in:
1 parent
025caeaa93
commit
37b3db9654
1 file changed
+20
@@ -39,3 +39,23 @@ def test_exported_destructure_emits_one_node_per_name(tmp_path):
|
||||
assert not any(label.startswith("{") for label in labels), (
|
||||
f"a combined-pattern label survived: {sorted(labels)}"
|
||||
)
|
||||
|
||||
|
||||
def test_single_name_import_resolves_to_its_own_node(tmp_path):
|
||||
r, lbl = _extract(tmp_path, {
|
||||
"auth.ts": _NEXTAUTH_HELPER
|
||||
+ "export const { auth, handlers } = NextAuth({});\n",
|
||||
"consumer.ts": (
|
||||
"import { auth } from './auth';\n"
|
||||
"export function useAuth() { return auth(); }\n"
|
||||
),
|
||||
})
|
||||
imports = [(lbl.get(e["source"]), lbl.get(e["target"]))
|
||||
for e in r["edges"] if e["relation"] == "imports"]
|
||||
assert ("consumer.ts", "auth") in imports, \
|
||||
f"import {{'auth'}} did not resolve to its own node; imports={imports}"
|
||||
|
||||
calls = [(lbl.get(e["source"]), lbl.get(e["target"]))
|
||||
for e in r["edges"] if e["relation"] == "calls"]
|
||||
assert ("useAuth()", "auth") in calls, \
|
||||
f"call through the destructured import did not resolve; calls={calls}"
|
||||
Reference in new issue
Block a user