my-buds async add: insert new row before .applet-list-buffer, not after — keeps spacer last
All checks were successful
ci/woodpecker/push/pyswiss Pipeline was successful
ci/woodpecker/push/main Pipeline was successful

`_appendBudEntry` queried `.bud-entry-buffer` (a class that doesn't exist — the
shell renders `.applet-list-buffer`), so the lookup missed and the row fell
through to appendChild, landing BELOW the trailing spacer <li> and leaving a
visible gap between the list and the new bud. Query the real class so the new
row inserts before the spacer. FT now asserts the buffer stays last-child.

Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-05-29 12:56:03 -04:00
parent af8452f22d
commit 1ac380dfc5
2 changed files with 12 additions and 1 deletions

View File

@@ -79,6 +79,13 @@ class MyBudsPageTest(FunctionalTest):
sel = f".bud-entry[data-bud-id='{self.alice.id}']" sel = f".bud-entry[data-bud-id='{self.alice.id}']"
row = self.wait_for(lambda: self.browser.find_element(By.CSS_SELECTOR, sel)) row = self.wait_for(lambda: self.browser.find_element(By.CSS_SELECTOR, sel))
# The trailing `.applet-list-buffer` spacer must stay LAST — the new
# row goes BEFORE it, not after (regression: querying the wrong buffer
# class dropped the row below the spacer).
last = self.browser.find_element(
By.CSS_SELECTOR, "#id_buds_list > li:last-child"
)
self.assertIn("applet-list-buffer", (last.get_attribute("class") or "").split())
# Carries both classes (styling + tooltip-lock both key on these). # Carries both classes (styling + tooltip-lock both key on these).
cls = (row.get_attribute("class") or "").split() cls = (row.get_attribute("class") or "").split()
self.assertIn("applet-list-entry", cls) self.assertIn("applet-list-entry", cls)

View File

@@ -54,7 +54,11 @@
rowTitle.textContent = ' the ' + title; rowTitle.textContent = ' the ' + title;
li.appendChild(rowTitle); li.appendChild(rowTitle);
var buffer = list.querySelector('.bud-entry-buffer'); // Keep the trailing spacer LAST — _applet-grid-list.html renders it
// as `.applet-list-buffer` (not `.bud-entry-buffer`); querying the
// wrong class fell through to appendChild, dropping the new row
// BELOW the buffer.
var buffer = list.querySelector('.applet-list-buffer');
if (buffer) list.insertBefore(li, buffer); if (buffer) list.insertBefore(li, buffer);
else list.appendChild(li); else list.appendChild(li);
} }