Revert "fix: snapshot -i auto-detects dropdown/popover interactive elements (#844)"

This reverts commit 542e7836d0.
This commit is contained in:
root
2026-04-06 03:27:13 +00:00
parent 542e7836d0
commit 237ae2abbe
4 changed files with 4 additions and 273 deletions

View File

@@ -386,77 +386,6 @@ describe('Cursor-interactive', () => {
// And cursor-interactive section
expect(result).toContain('cursor-interactive');
});
test('snapshot -i alone also includes cursor-interactive elements', async () => {
await handleWriteCommand('goto', [baseUrl + '/cursor-interactive.html'], bm);
const result = await handleMetaCommand('snapshot', ['-i'], bm, shutdown);
// -i now auto-enables -C
expect(result).toContain('[button]');
expect(result).toContain('[link]');
expect(result).toContain('cursor-interactive');
expect(result).toContain('@c');
});
});
// ─── Dropdown/Popover Detection ─────────────────────────────────
describe('Dropdown/popover detection', () => {
test('snapshot -i auto-enables cursor scan and finds dropdown items', async () => {
await handleWriteCommand('goto', [baseUrl + '/dropdown.html'], bm);
const result = await handleMetaCommand('snapshot', ['-i'], bm, shutdown);
// Should find standard interactive elements
expect(result).toContain('[button]');
expect(result).toContain('[link]');
expect(result).toContain('[textbox]');
// Should also find cursor-interactive dropdown items
expect(result).toContain('cursor-interactive');
expect(result).toContain('@c');
expect(result).toContain('Alice Johnson');
expect(result).toContain('Bob Smith');
});
test('dropdown items in floating container are tagged as popover-child', async () => {
await handleWriteCommand('goto', [baseUrl + '/dropdown.html'], bm);
const result = await handleMetaCommand('snapshot', ['-i'], bm, shutdown);
expect(result).toContain('popover-child');
});
test('dropdown items with role="option" in portal are captured', async () => {
await handleWriteCommand('goto', [baseUrl + '/dropdown.html'], bm);
const result = await handleMetaCommand('snapshot', ['-i'], bm, shutdown);
// Dave Wilson has role="option" — should be captured even though it has a role
expect(result).toContain('Dave Wilson');
});
test('static text in dropdown without interactivity is NOT captured', async () => {
await handleWriteCommand('goto', [baseUrl + '/dropdown.html'], bm);
const result = await handleMetaCommand('snapshot', ['-i'], bm, shutdown);
// "No results? Try a different search." has no cursor:pointer, no onclick, no tabindex
expect(result).not.toContain('No results');
});
test('@c ref from dropdown is clickable', async () => {
await handleWriteCommand('goto', [baseUrl + '/dropdown.html'], bm);
const snap = await handleMetaCommand('snapshot', ['-i'], bm, shutdown);
// Find a @c ref for Alice
const aliceLine = snap.split('\n').find(l => l.includes('@c') && l.includes('Alice'));
if (aliceLine) {
const refMatch = aliceLine.match(/@(c\d+)/);
if (refMatch) {
const result = await handleWriteCommand('click', [`@${refMatch[1]}`], bm);
expect(result).toContain('Clicked');
}
}
});
test('snapshot -C still works standalone without -i', async () => {
await handleWriteCommand('goto', [baseUrl + '/dropdown.html'], bm);
const result = await handleMetaCommand('snapshot', ['-C'], bm, shutdown);
expect(result).toContain('cursor-interactive');
expect(result).toContain('Alice Johnson');
// Without -i, should include non-interactive ARIA elements too
expect(result).toContain('[heading]');
});
});
// ─── Snapshot Error Paths ───────────────────────────────────────