Я пытаюсь работать с элементом canvas, используя Angular Testing Library. Мне нужно сделать больше, чем щелкнуть элемент, мне нужно контролировать, где именно происходит щелчок.
Я пробовал fireEvent.mouseDown(graph, { x: 1000, y: 1000 });
, но проверка события в обработчике mousedown всегда дает одинаковые координаты для события.
Как мне его щелкнуть в нужном месте?
// mousedown handler for wrapper div
// just for testing to see that I'm using fireEvent correctly
clickedWrapper(event) {
console.log(event); // just shows {isTrusted: false}
console.log(event.offsetX, event.offsetY);
console.log(event.x, event.y);
}
// the test
describe('Mouse interaction', () => {
let testComponent;
beforeEach(async () => {
testComponent = await render(NewGraphComponent);
});
it('zooms both axes when selection within the graph', () => {
spyOn(NewGraphComponent.prototype, 'clickedWrapper').and.callThrough();
const graph = testComponent.getByTestId('inner-canvas');
fireEvent.mouseDown(graph, { offsetX: 100, y: 100 });
expect(NewGraphComponent.prototype.clickedWrapper).toHaveBeenCalled();
});
});
Результат:
MouseEvent{isTrusted: false}
-79, -88
0, 0