Replace bad sinon stub in mouse tests

It screwed up important calls inside the code being tested. Avoid
the stub by creating a temporary element with the desired properties.
This commit is contained in:
Pierre Ossman 2018-08-16 17:36:54 +02:00
parent ab1ace383e
commit 7407c1f4e2
1 changed files with 17 additions and 6 deletions

View File

@ -5,12 +5,23 @@ import Mouse from '../core/input/mouse.js';
describe('Mouse Event Handling', function() { describe('Mouse Event Handling', function() {
"use strict"; "use strict";
// This function is only used on target (the canvas) let target;
// and for these tests we can assume that the canvas is 100x100
// located at coordinates 10x10 beforeEach(function () {
sinon.stub(Element.prototype, 'getBoundingClientRect').returns( // For these tests we can assume that the canvas is 100x100
{left: 10, right: 110, top: 10, bottom: 110, width: 100, height: 100}); // located at coordinates 10x10
const target = document.createElement('canvas'); target = document.createElement('canvas');
target.style.position = "absolute";
target.style.top = "10px";
target.style.left = "10px";
target.style.width = "100px";
target.style.height = "100px";
document.body.appendChild(target);
});
afterEach(function () {
document.body.removeChild(target);
target = null;
});
// The real constructors might not work everywhere we // The real constructors might not work everywhere we
// want to run these tests // want to run these tests