|
|
@@ -1,11 +1,13 @@
|
|
|
import base64
|
|
|
import json
|
|
|
+import re
|
|
|
import subprocess
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
|
-FILTER = ROOT / "frontend/src/store/modules/menuFilter.js"
|
|
|
+FILTER = ROOT / "frontend/src/store/menuFilter.js"
|
|
|
+MODULES = ROOT / "frontend/src/store/modules"
|
|
|
ROUTES = ROOT / "frontend/src/router/routes.js"
|
|
|
|
|
|
|
|
|
@@ -76,3 +78,14 @@ def test_user_manager_keeps_only_user_management_child():
|
|
|
def test_leaf_requires_all_of_its_permissions():
|
|
|
assert _strict_leaf_is_visible(["first:read"]) is False
|
|
|
assert _strict_leaf_is_visible(["first:read", "second:seal"]) is True
|
|
|
+
|
|
|
+
|
|
|
+def test_every_auto_discovered_vuex_module_has_a_default_export():
|
|
|
+ missing_defaults = [
|
|
|
+ module.relative_to(ROOT).as_posix()
|
|
|
+ for module in MODULES.glob("**/*.js")
|
|
|
+ if not re.search(r"(?m)^\s*export\s+default\b", module.read_text(encoding="utf-8"))
|
|
|
+ ]
|
|
|
+ assert not missing_defaults, (
|
|
|
+ "auto-discovered Vuex modules must export default: " + ", ".join(missing_defaults)
|
|
|
+ )
|