Rename all 1,169 components to path-based names with namespace support
Component names now reflect filesystem location using / as path separator and : as namespace separator for shared components: ~sx-header → ~layouts/header ~layout-app-body → ~shared:layout/app-body ~blog-admin-dashboard → ~admin/dashboard 209 files, 4,941 replacements across all services. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -33,10 +33,10 @@ def make_env(*sx_sources: str) -> dict:
|
||||
|
||||
class TestScanAst:
|
||||
def test_simple_component_ref(self):
|
||||
env = make_env('(defcomp ~card (&key title) (div (~badge :label title)))')
|
||||
env = make_env('(defcomp ~card (&key title) (div (~shared:misc/badge :label title)))')
|
||||
comp = env["~card"]
|
||||
refs = _scan_ast(comp.body)
|
||||
assert refs == {"~badge"}
|
||||
assert refs == {"~shared:misc/badge"}
|
||||
|
||||
def test_no_refs(self):
|
||||
env = make_env('(defcomp ~plain (&key text) (div :class "p-4" text))')
|
||||
@@ -77,11 +77,11 @@ class TestScanAst:
|
||||
class TestTransitiveDeps:
|
||||
def test_direct_dep(self):
|
||||
env = make_env(
|
||||
'(defcomp ~card (&key) (div (~badge)))',
|
||||
'(defcomp ~badge (&key) (span "★"))',
|
||||
'(defcomp ~card (&key) (div (~shared:misc/badge)))',
|
||||
'(defcomp ~shared:misc/badge (&key) (span "★"))',
|
||||
)
|
||||
deps = transitive_deps("~card", env)
|
||||
assert deps == {"~badge"}
|
||||
assert deps == {"~shared:misc/badge"}
|
||||
|
||||
def test_transitive(self):
|
||||
env = make_env(
|
||||
@@ -115,11 +115,11 @@ class TestTransitiveDeps:
|
||||
|
||||
def test_without_tilde_prefix(self):
|
||||
env = make_env(
|
||||
'(defcomp ~card (&key) (div (~badge)))',
|
||||
'(defcomp ~badge (&key) (span "★"))',
|
||||
'(defcomp ~card (&key) (div (~shared:misc/badge)))',
|
||||
'(defcomp ~shared:misc/badge (&key) (span "★"))',
|
||||
)
|
||||
deps = transitive_deps("card", env)
|
||||
assert deps == {"~badge"}
|
||||
assert deps == {"~shared:misc/badge"}
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -130,13 +130,13 @@ class TestComputeAllDeps:
|
||||
def test_sets_deps_on_components(self):
|
||||
env = make_env(
|
||||
'(defcomp ~page (&key) (div (~card)))',
|
||||
'(defcomp ~card (&key) (div (~badge)))',
|
||||
'(defcomp ~badge (&key) (span "★"))',
|
||||
'(defcomp ~card (&key) (div (~shared:misc/badge)))',
|
||||
'(defcomp ~shared:misc/badge (&key) (span "★"))',
|
||||
)
|
||||
compute_all_deps(env)
|
||||
assert env["~page"].deps == {"~card", "~badge"}
|
||||
assert env["~card"].deps == {"~badge"}
|
||||
assert env["~badge"].deps == set()
|
||||
assert env["~page"].deps == {"~card", "~shared:misc/badge"}
|
||||
assert env["~card"].deps == {"~shared:misc/badge"}
|
||||
assert env["~shared:misc/badge"].deps == set()
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -145,9 +145,9 @@ class TestComputeAllDeps:
|
||||
|
||||
class TestScanComponentsFromSx:
|
||||
def test_basic(self):
|
||||
source = '(~card :title "hi" (~badge :label "new"))'
|
||||
source = '(~card :title "hi" (~shared:misc/badge :label "new"))'
|
||||
refs = scan_components_from_sx(source)
|
||||
assert refs == {"~card", "~badge"}
|
||||
assert refs == {"~card", "~shared:misc/badge"}
|
||||
|
||||
def test_no_components(self):
|
||||
source = '(div :class "p-4" (p "hello"))'
|
||||
@@ -162,8 +162,8 @@ class TestScanComponentsFromSx:
|
||||
class TestComponentsNeeded:
|
||||
def test_page_with_deps(self):
|
||||
env = make_env(
|
||||
'(defcomp ~page-layout (&key) (div (~nav) (~footer)))',
|
||||
'(defcomp ~nav (&key) (nav "nav"))',
|
||||
'(defcomp ~page-layout (&key) (div (~plans/environment-images/nav) (~footer)))',
|
||||
'(defcomp ~plans/environment-images/nav (&key) (nav "nav"))',
|
||||
'(defcomp ~footer (&key) (footer "footer"))',
|
||||
'(defcomp ~unused (&key) (div "not needed"))',
|
||||
)
|
||||
@@ -171,6 +171,6 @@ class TestComponentsNeeded:
|
||||
page_sx = '(~page-layout)'
|
||||
needed = components_needed(page_sx, env)
|
||||
assert "~page-layout" in needed
|
||||
assert "~nav" in needed
|
||||
assert "~plans/environment-images/nav" in needed
|
||||
assert "~footer" in needed
|
||||
assert "~unused" not in needed
|
||||
|
||||
Reference in New Issue
Block a user