diff --git a/src/functional_tests/test_bill_my_buds.py b/src/functional_tests/test_bill_my_buds.py index feadc33..c2baab4 100644 --- a/src/functional_tests/test_bill_my_buds.py +++ b/src/functional_tests/test_bill_my_buds.py @@ -79,6 +79,13 @@ class MyBudsPageTest(FunctionalTest): sel = f".bud-entry[data-bud-id='{self.alice.id}']" 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). cls = (row.get_attribute("class") or "").split() self.assertIn("applet-list-entry", cls) diff --git a/src/templates/apps/billboard/_partials/_bud_add_panel.html b/src/templates/apps/billboard/_partials/_bud_add_panel.html index 6bf8888..668768e 100644 --- a/src/templates/apps/billboard/_partials/_bud_add_panel.html +++ b/src/templates/apps/billboard/_partials/_bud_add_panel.html @@ -54,7 +54,11 @@ rowTitle.textContent = ' the ' + title; 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); else list.appendChild(li); }