mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-27 15:04:23 +00:00
3c01402bbd
PDF Detach v2 GitOrigin-RevId: 3deb76474185f9176cde23ab32ef51b90df6e8e9
46 lines
1 KiB
JavaScript
46 lines
1 KiB
JavaScript
import sysend from 'sysend'
|
|
import sinon from 'sinon'
|
|
|
|
const sysendSpy = sinon.spy(sysend)
|
|
|
|
function resetHistory() {
|
|
for (const method of Object.keys(sysendSpy)) {
|
|
if (sysendSpy[method].resetHistory) sysendSpy[method].resetHistory()
|
|
}
|
|
}
|
|
|
|
// sysends sends and receives custom calls in the background. This Helps
|
|
// filtering them out
|
|
function getDetachCalls(method) {
|
|
return sysend[method]
|
|
.getCalls()
|
|
.filter(call => call.args[0].startsWith('detach-'))
|
|
}
|
|
|
|
function getLastDetachCall(method) {
|
|
return getDetachCalls(method).pop()
|
|
}
|
|
|
|
function getLastBroacastMessage() {
|
|
return getLastDetachCall('broadcast').args[1]
|
|
}
|
|
|
|
function getAllBroacastMessages() {
|
|
return getDetachCalls('broadcast')
|
|
}
|
|
|
|
// this fakes receiving a message by calling the handler add to `on`. A bit
|
|
// funky, but works for now
|
|
function receiveMessage(message) {
|
|
getLastDetachCall('on').args[1](message)
|
|
}
|
|
|
|
export default {
|
|
spy: sysendSpy,
|
|
resetHistory,
|
|
getDetachCalls,
|
|
getLastDetachCall,
|
|
getLastBroacastMessage,
|
|
getAllBroacastMessages,
|
|
receiveMessage,
|
|
}
|