dotfiles/vscode/.vscode/extensions/randomfractalsinc.vscode-data-preview-2.3.0/node_modules/awesomplete/test/specHelper.js
Errol Sancaktar ff17c17e23 vscode
2024-06-14 09:31:58 -06:00

71 lines
1.5 KiB
JavaScript

fixture.setBase("test/fixtures");
// finds DOM elements in tests
function $ (str, context) {
return (context || fixture.el).querySelector(str);
}
function $$ (str, context) {
return (context || fixture.el).querySelectorAll(str);
}
// bundled fixture load/cleanup
$.fixture = function (fixtureName) {
beforeEach(function () {
// Awesomplete probably needs to cleanup this by itself
try { Awesomplete.all = []; } catch(e) {};
fixture.load(fixtureName + ".html");
});
afterEach(function () {
fixture.cleanup();
});
};
// spy to check if event was fired or not
$.spyOnEvent = function (target, type) {
var handler = jasmine.createSpy(type);
$.on(target, type, handler);
return handler;
};
$.on = function (target, type, callback) {
target.addEventListener(type, callback);
};
$.fire = function (target, type, properties) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent(type, true, true );
for (var j in properties) {
evt[j] = properties[j];
}
target.dispatchEvent(evt);
return evt;
};
// simulates text input (very simple, only "input" event is fired)
$.type = function (input, text) {
input.focus();
input.value = text;
return $.fire(input, "input");
};
// simulates keydown events
$.keydown = function (target, keyCode) {
return $.fire(target, "keydown", { keyCode: keyCode });
};
$.k = {
TAB: 9,
ENTER: 13,
ESC: 27,
DOWN: 40,
UP: 38
};
// $.noop returns a new empty function each time it's being called
Object.defineProperty($, "noop", {
get: function () {
return function noop () {}
}
});