diff options
| author | Adam Soltys <[email protected]> | 2026-09-12 15:37:48 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-12 15:37:48 -0700 |
| commit | 9356684a78cddd106d82296a50a637406908cffd (patch) | |
| tree | 489bb638daee020849201729f6cb4d13fe08340c /tools | |
| parent | 60e755286302647d93bc82070c61fcf93ddbc3b9 (diff) | |
| download | coinosv3-9356684a78cddd106d82296a50a637406908cffd.tar.gz coinosv3-9356684a78cddd106d82296a50a637406908cffd.zip | |
A reply can carry a picture, and the WebView build has a name you can say.
The reply box gets the same paperclip the post composer has: one uploader
now, handing the URL to whichever draft asked for it, and the reply's own
imeta tag describing what it carries.
And the UnifiedPush build is graphene.apk — what people will actually call
it, and short enough to read down a phone line.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_019mrt228Upn9nNCwGixzSLx
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/post-actions-test.js | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/post-actions-test.js b/tools/post-actions-test.js index e6d6c9f..8cc525c 100644 --- a/tools/post-actions-test.js +++ b/tools/post-actions-test.js @@ -81,6 +81,26 @@ try { const draft = await page.evaluate(() => (document.querySelector('.chat-page textarea') || {}).value || ''); check('quoting opens the composer with the reference in it', /nostr:nevent1/.test(draft), draft.slice(0, 40) || 'empty'); + // A reply can carry a picture, the same as a post can. + await page.evaluate(() => { const b = [...document.querySelectorAll('.note-act')].find((x) => x.getAttribute('aria-label') === 'Reply'); if (b) b.click(); }); + await sleep(2500); + const reply = await page.evaluate(() => { + const box = document.querySelector('.thread-reply-input'); + if (!box) return { box: false }; + const row = box.parentElement; + return { + box: true, + attach: !!row.querySelector('.attach-btn'), + file: !!row.querySelector('#reply-file'), + accepts: (row.querySelector('#reply-file') || {}).accept, + }; + }); + check('the reply box has the same paperclip', reply.box && reply.attach && reply.file, JSON.stringify(reply)); + check('...taking pictures and video', /image/.test(reply.accepts || '') && /video/.test(reply.accepts || ''), reply.accepts || 'none'); + // back out of the thread the reply check opened + await page.evaluate(() => { const b = [...document.querySelectorAll('button')].find((x) => x.textContent.trim() === 'Back' || x.textContent.trim() === '← Back'); if (b) b.click(); }); + await sleep(1500); + // the ellipsis sheet, and muting from it await page.evaluate(() => { const b = [...document.querySelectorAll('.btn-sm')].find((x) => x.textContent.trim() === '⋯'); if (b) b.click(); }); await sleep(600); |
