Fix api tests

This commit is contained in:
Daniel Imms
2020-05-06 02:50:35 -07:00
parent 6d5ae1416a
commit 9ca6733f68
+38 -31
View File
@@ -572,7 +572,7 @@ describe('API Integration Tests', function(): void {
await moveMouseCell(page, dims, 1, 1);
await moveMouseCell(page, dims, 2, 2);
await moveMouseCell(page, dims, 10, 4);
await pollFor(page, `window.calls`, [{ x: 1, y: 1 }, { x: 2, y: 2 }, { x: 10, y: 4 }]);
await pollFor(page, `window.calls`, [1, 2, 4]);
await page.evaluate(`window.disposable.dispose()`);
});
@@ -585,8 +585,8 @@ describe('API Integration Tests', function(): void {
window.calls = [];
window.disposable = window.term.registerLinkProvider({
provideLinks: (position, cb) => {
window.calls.push('provide ' + position.x + ',' + position.y);
if (position.x >= 5 && position.x <= 7 && position.y === 1) {
window.calls.push('provide ' + position);
if (position === 1) {
window.calls.push('match');
cb([{
range: { start: { x: 5, y: 1 }, end: { x: 7, y: 1 } },
@@ -601,13 +601,13 @@ describe('API Integration Tests', function(): void {
`);
const dims = await getDimensions();
await moveMouseCell(page, dims, 5, 1);
await pollFor(page, `window.calls`, ['provide 5,1', 'match', 'hover']);
await pollFor(page, `window.calls`, ['provide 1', 'match', 'hover']);
await moveMouseCell(page, dims, 4, 1);
await pollFor(page, `window.calls`, ['provide 5,1', 'match', 'hover', 'leave', 'provide 4,1']);
await pollFor(page, `window.calls`, ['provide 1', 'match', 'hover', 'leave', ]);
await moveMouseCell(page, dims, 7, 1);
await pollFor(page, `window.calls`, ['provide 5,1', 'match', 'hover', 'leave', 'provide 4,1', 'provide 7,1', 'match', 'hover']);
await pollFor(page, `window.calls`, ['provide 1', 'match', 'hover', 'leave', 'hover']);
await moveMouseCell(page, dims, 8, 1);
await pollFor(page, `window.calls`, ['provide 5,1', 'match', 'hover', 'leave', 'provide 4,1', 'provide 7,1', 'match', 'hover', 'leave', 'provide 8,1']);
await pollFor(page, `window.calls`, ['provide 1', 'match', 'hover', 'leave', 'hover', 'leave']);
await page.evaluate(`window.disposable.dispose()`);
});
@@ -620,27 +620,34 @@ describe('API Integration Tests', function(): void {
window.calls = [];
window.disposable = window.term.registerLinkProvider({
provideLinks: (position, cb) => {
window.calls.push('provide ' + position.x + ',' + position.y);
if (position.x >= 5 && position.x <= 7 && position.y === 1) {
window.calls.push('match');
window.calls.push('provide ' + position);
if (position === 1) {
window.calls.push('match 1');
cb([{
range: { start: { x: 5, y: 1 }, end: { x: 7, y: 1 } },
text: 'bar',
activate: () => window.calls.push('activate')
}]);
} else if (position === 2) {
window.calls.push('match 2');
cb([{
range: { start: { x: 5, y: 2 }, end: { x: 7, y: 2 } },
text: 'bar',
activate: () => window.calls.push('activate')
}]);
}
}
});
`);
const dims = await getDimensions();
await moveMouseCell(page, dims, 5, 1);
await pollFor(page, `window.calls`, ['provide 5,1', 'match']);
await moveMouseCell(page, dims, 4, 1);
await pollFor(page, `window.calls`, ['provide 5,1', 'match', 'provide 4,1']);
await pollFor(page, `window.calls`, ['provide 1', 'match 1']);
await moveMouseCell(page, dims, 4, 2);
await pollFor(page, `window.calls`, ['provide 1', 'match 1', 'provide 2', 'match 2']);
await moveMouseCell(page, dims, 7, 1);
await pollFor(page, `window.calls`, ['provide 5,1', 'match', 'provide 4,1', 'provide 7,1', 'match']);
await moveMouseCell(page, dims, 8, 1);
await pollFor(page, `window.calls`, ['provide 5,1', 'match', 'provide 4,1', 'provide 7,1', 'match', 'provide 8,1']);
await pollFor(page, `window.calls`, ['provide 1', 'match 1', 'provide 2', 'match 2', 'provide 1', 'match 1']);
await moveMouseCell(page, dims, 6, 2);
await pollFor(page, `window.calls`, ['provide 1', 'match 1', 'provide 2', 'match 2', 'provide 1', 'match 1', 'provide 2', 'match 2']);
await page.evaluate(`window.disposable.dispose()`);
});
@@ -656,38 +663,38 @@ describe('API Integration Tests', function(): void {
await moveMouseCell(page, dims, 5, 5);
await page.mouse.down();
await page.mouse.up();
await timeout(50); // Not sure how to avoid this timeout, checking for xterm-focus doesn't help
await timeout(200); // Not sure how to avoid this timeout, checking for xterm-focus doesn't help
await page.evaluate(`
window.calls = [];
window.disposable = window.term.registerLinkProvider({
provideLinks: (position, cb) => {
window.calls.push('provide ' + position.x + ',' + position.y);
provideLinks: (y, cb) => {
window.calls.push('provide ' + y);
cb([{
range: { start: position, end: position },
text: window.term.buffer.active.getLine(position.y - 1).getCell(position.x - 1).getChars(),
activate: (_, text) => window.calls.push('activate ' + text),
hover: () => window.calls.push('hover'),
leave: () => window.calls.push('leave')
range: { start: { x: 1, y }, end: { x: 80, y } },
text: window.term.buffer.active.getLine(y - 1).translateToString(),
activate: (_, text) => window.calls.push('activate ' + y),
hover: () => window.calls.push('hover ' + y),
leave: () => window.calls.push('leave ' + y)
}]);
}
});
`);
await moveMouseCell(page, dims, 3, 1);
await pollFor(page, `window.calls`, ['provide 3,1', 'hover']);
await pollFor(page, `window.calls`, ['provide 1', 'hover 1']);
await page.mouse.down();
await page.mouse.up();
await pollFor(page, `window.calls`, ['provide 3,1', 'hover', 'activate b']);
await moveMouseCell(page, dims, 1, 1);
await pollFor(page, `window.calls`, ['provide 3,1', 'hover', 'activate b', 'leave', 'provide 1,1', 'hover']);
await pollFor(page, `window.calls`, ['provide 1', 'hover 1', 'activate 1']);
await moveMouseCell(page, dims, 1, 2);
await pollFor(page, `window.calls`, ['provide 1', 'hover 1', 'activate 1', 'leave 1', 'provide 2', 'hover 2']);
await page.mouse.down();
await page.mouse.up();
await pollFor(page, `window.calls`, ['provide 3,1', 'hover', 'activate b', 'leave', 'provide 1,1', 'hover', 'activate a']);
await pollFor(page, `window.calls`, ['provide 1', 'hover 1', 'activate 1', 'leave 1', 'provide 2', 'hover 2', 'activate 2']);
await moveMouseCell(page, dims, 5, 1);
await pollFor(page, `window.calls`, ['provide 3,1', 'hover', 'activate b', 'leave', 'provide 1,1', 'hover', 'activate a', 'leave', 'provide 5,1', 'hover']);
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']);
await page.mouse.down();
await page.mouse.up();
await pollFor(page, `window.calls`, ['provide 3,1', 'hover', 'activate b', 'leave', 'provide 1,1', 'hover', 'activate a', 'leave', 'provide 5,1', 'hover', 'activate c']);
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()`);
});
});