mirror of
https://github.com/Shopify/draggable.git
synced 2026-01-18 15:54:06 +00:00
51 lines
1.1 KiB
JavaScript
51 lines
1.1 KiB
JavaScript
function toHaveTriggeredSensorEvent(received, expectedEventName) {
|
|
let triggered = false;
|
|
|
|
function callback() {
|
|
triggered = true;
|
|
}
|
|
|
|
document.addEventListener(expectedEventName, callback);
|
|
received();
|
|
document.removeEventListener(expectedEventName, callback);
|
|
|
|
const pass = Boolean(triggered);
|
|
|
|
return {
|
|
pass,
|
|
message: () => {
|
|
const expectation = pass ? 'not to have been' : 'to have been';
|
|
|
|
return `Expected sensor event '${expectedEventName}' ${expectation} triggered`;
|
|
},
|
|
};
|
|
}
|
|
|
|
function toHaveCanceledSensorEvent(received, expectedEventName) {
|
|
let canceled = false;
|
|
|
|
function callback(event) {
|
|
canceled = event.detail.canceled();
|
|
}
|
|
|
|
document.addEventListener(expectedEventName, callback);
|
|
received();
|
|
document.removeEventListener(expectedEventName, callback);
|
|
|
|
const pass = Boolean(canceled);
|
|
|
|
return {
|
|
pass,
|
|
message: () => {
|
|
const expectation = pass ? 'not to have been' : 'to have been';
|
|
|
|
return `Expected sensor event '${expectedEventName}' ${expectation} canceled`;
|
|
},
|
|
};
|
|
}
|
|
|
|
expect.extend({
|
|
toHaveTriggeredSensorEvent,
|
|
toHaveCanceledSensorEvent,
|
|
});
|