aboutsummaryrefslogtreecommitdiffstats
path: root/tools/thread-reply-test.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-26 07:50:39 -0700
committerAdam Soltys <[email protected]>2026-09-26 07:50:39 -0700
commita4f13b845b9dfb364bdac0932916d99c381db20e (patch)
tree16a06b0f3b19153056f329ef156d813e02eb2abf /tools/thread-reply-test.js
parentacac2431b592600be2c37878851cf8e16b6ceba3 (diff)
downloadcoinosv3-a4f13b845b9dfb364bdac0932916d99c381db20e.tar.gz
coinosv3-a4f13b845b9dfb364bdac0932916d99c381db20e.zip
Thread: the reply box appears on Reply, full width, with its tools on a row beneath.
A thread opened to read came with an empty field under its first post. The box now appears under the note whose Reply was tapped (or while a draft is pending), folds away once the reply is sent or Cancel is tapped, and takes Amethyst's shape: the field across the full width, attach and preview on a row beneath it with Cancel and Reply at the right. Tests: thread-reply's helper follows the new shape and expects the box to fold after sending; compose-preview and feed-list tap Reply before expecting a box (the thread card carries .thread-card as the marker). Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01VhUKyXKtsJ67QAFfb7QR9D
Diffstat (limited to 'tools/thread-reply-test.js')
-rw-r--r--tools/thread-reply-test.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/thread-reply-test.js b/tools/thread-reply-test.js
index 37c22b4..4362468 100644
--- a/tools/thread-reply-test.js
+++ b/tools/thread-reply-test.js
@@ -65,7 +65,7 @@ page.on('request', r => r.url().startsWith(server.url.origin) ? r.continue() : r
const check = (name, value) => { assert(value, name); console.log('✓ ' + name); };
const inline = () => page.evaluate(() => {
const input = document.querySelector('.thread-reply-input');
- const box = input?.parentElement.parentElement;
+ const box = input?.closest('.thread-reply'); // the field sits directly in the box now, tools on a row beneath
return !!input && box.previousElementSibling?.dataset.zapPost === test.ui.noteThread.focusId;
});
try {
@@ -81,7 +81,9 @@ try {
await page.waitForFunction(() => test.waiting.length === 2);
await page.evaluate(() => test.release());
await page.waitForFunction(() => document.body.innerText.includes('Root post'));
- check('a relay result omitting the tapped reply keeps it and its composer', await inline());
+ // the composer folds away once the reply is sent; the tapped reply itself stays
+ check('a relay result omitting the tapped reply keeps it (composer folded after sending)', await page.evaluate(() =>
+ !!document.querySelector('[data-zap-post="' + test.ui.noteThread.focusId + '"]') && !document.querySelector('.thread-reply-input')));
await page.evaluate(() => test.overlay());
check('fixture starts with a profile covering the existing thread', await page.evaluate(() => test.ui.profOverThread && !document.querySelector('.thread-reply-input')));
await page.click('#outside .note-act');