aboutsummaryrefslogtreecommitdiff
path: root/working/hyprland-lua-port/test-desktop-for-lua.patch
blob: 5bf76126d67b55e26b8d784f50f1a5701bb9fc54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
diff --git a/scripts/testing/tests/test_desktop.py b/scripts/testing/tests/test_desktop.py
index 1538d6a..ca2f266 100644
--- a/scripts/testing/tests/test_desktop.py
+++ b/scripts/testing/tests/test_desktop.py
@@ -11,6 +11,8 @@ installs `awww` (swww successor) and `pacman -Q swww` no longer matches — so
 this checks awww. That divergence from the shell sweep is a correctness fix.
 """
 
+import re
+
 import pytest
 
 
@@ -19,8 +21,12 @@ HYPRLAND_TOOLS = [
     "awww", "grim", "slurp", "gammastep", "foot",
 ]
 
+# Note: hyprland.lua sits beside two .conf files on purpose. Only Hyprland's own
+# config format is deprecated (removed in 0.57); hypridle and hyprlock are
+# separate projects still on hyprlang, so their .conf names are current. Don't
+# "fix" this list for consistency -- that reverts the Lua port.
 HYPRLAND_CONFIGS = [
-    ".config/hypr/hyprland.conf",
+    ".config/hypr/hyprland.lua",
     ".config/hypr/hypridle.conf",
     ".config/hypr/hyprlock.conf",
     ".config/waybar/config",
@@ -139,8 +145,19 @@ def test_bt_panel_wired(host, hyprland_installed, home):
     waybar = host.file("%s/.config/waybar/config" % home)
     assert "custom/bluetooth" in waybar.content_string, \
         "waybar config lacks the custom/bluetooth module"
-    hyprconf = host.file("%s/.config/hypr/hyprland.conf" % home)
-    assert "bt-panel" in hyprconf.content_string, \
-        "hyprland.conf lacks the bt-panel keybind"
+    hypr = host.file("%s/.config/hypr/hyprland.lua" % home).content_string
+    # Assert the dispatcher and the chord, not the bare binary name. "bt-panel"
+    # on its own still appears inside exec_cmd() when the chord that reaches it
+    # is mangled, so the weak form passes on a config where Super+Shift+B does
+    # nothing. That is not hypothetical: converting this config to Lua produced
+    # exactly that defect elsewhere ("CTRL" .. mod .. " + S" collapsing to an
+    # unparseable CTRLSUPER + S, which Hyprland rejects at parse and leaves dead).
+    # One pattern spanning the whole bind, not two independent checks: asserting
+    # the chord and the dispatcher separately passes when they sit on different
+    # lines, and a planned reshuffle of the panel keybinding family is exactly
+    # the change that would separate them.
+    assert re.search(
+        r'hl\.bind\(\s*mod\s*\.\.\s*" \+ SHIFT \+ B",\s*hl\.dsp\.exec_cmd\("bt-panel"\)',
+        hypr), "hyprland.lua lacks the Super+Shift+B bind reaching bt-panel"
     assert host.file("%s/.config/themes/dupre/panel.css" % home).exists, \
         "shared panel css missing from the stowed theme"