mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Add test for multiple links on one line
This commit is contained in:
@@ -697,6 +697,52 @@ describe('API Integration Tests', function(): void {
|
||||
await pollFor(page, `window.calls`, ['provide 1', 'hover 1', 'activate 1', 'leave 1', 'provide 2', 'hover 2', 'activate 2', 'leave 2', 'provide 1', 'hover 1', 'activate 1']);
|
||||
await page.evaluate(`window.disposable.dispose()`);
|
||||
});
|
||||
|
||||
it('should work when multiple links are provided on the same line', async () => {
|
||||
await openTerminal(page, { rendererType: 'dom' });
|
||||
await writeSync(page, 'foo bar baz');
|
||||
// Wait for renderer to catch up as links are cleared on render
|
||||
await pollFor(page, `document.querySelector('.xterm-rows').textContent`, 'foo bar baz ');
|
||||
await page.evaluate(`
|
||||
window.calls = [];
|
||||
window.disposable = window.term.registerLinkProvider({
|
||||
provideLinks: (position, cb) => {
|
||||
window.calls.push('provide ' + position);
|
||||
if (position === 1) {
|
||||
cb([{
|
||||
range: { start: { x: 1, y: 1 }, end: { x: 3, y: 1 } },
|
||||
text: '',
|
||||
activate: () => window.calls.push('activate'),
|
||||
hover: () => window.calls.push('hover 1-3'),
|
||||
leave: () => window.calls.push('leave 1-3')
|
||||
}, {
|
||||
range: { start: { x: 5, y: 1 }, end: { x: 7, y: 1 } },
|
||||
text: '',
|
||||
activate: () => window.calls.push('activate'),
|
||||
hover: () => window.calls.push('hover 5-7'),
|
||||
leave: () => window.calls.push('leave 5-7')
|
||||
}, {
|
||||
range: { start: { x: 9, y: 1 }, end: { x: 11, y: 1 } },
|
||||
text: '',
|
||||
activate: () => window.calls.push('activate'),
|
||||
hover: () => window.calls.push('hover 9-11'),
|
||||
leave: () => window.calls.push('leave 9-11')
|
||||
}]);
|
||||
}
|
||||
}
|
||||
});
|
||||
`);
|
||||
const dims = await getDimensions();
|
||||
await moveMouseCell(page, dims, 2, 1);
|
||||
await pollFor(page, `window.calls`, ['provide 1', 'hover 1-3']);
|
||||
await moveMouseCell(page, dims, 6, 1);
|
||||
await pollFor(page, `window.calls`, ['provide 1', 'hover 1-3', 'leave 1-3', 'hover 5-7']);
|
||||
await moveMouseCell(page, dims, 6, 2);
|
||||
await pollFor(page, `window.calls`, ['provide 1', 'hover 1-3', 'leave 1-3', 'hover 5-7', 'leave 5-7', 'provide 2']);
|
||||
await moveMouseCell(page, dims, 10, 1);
|
||||
await pollFor(page, `window.calls`, ['provide 1', 'hover 1-3', 'leave 1-3', 'hover 5-7', 'leave 5-7', 'provide 2', 'provide 1', 'hover 9-11']);
|
||||
await page.evaluate(`window.disposable.dispose()`);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user