coveragehelp wanted
Description
I have the following function:
type KeyboardInfo = {
key?: string,
code?: string,
meta?: boolean,
alt?: boolean,
ctrl?: boolean,
shift?: boolean,
prevent?: boolean,
log?: boolean
}
function on(event: KeyboardEventTypes, {key, meta, alt, code, shift, ctrl, prevent = true, log = false}: KeyboardInfo, callback: (e: KeyboardEvent) => void) {
window.addEventListener(event, (e: KeyboardEvent) => {
if (log) {
console.log(e);
}
if (key && e.key !== key) {
return;
}
if (meta && e.metaKey !== meta) {
return;
}
if (code && e.code !== code) {
return;
}
if (ctrl && e.ctrlKey !== ctrl) {
return;
}
if (alt && e.altKey !== alt) {
return;
}
if (shift && e.shiftKey !== shift) {
return;
}
if (prevent) {
e.preventDefault();
}
callback(e);
});
}
I try to get this covered by flow, but I'm not sure how. Atom says it is not covered:

Is this because I call window? Not sure what is going on here.