tests: Spy on socket.io messages as early as possible

This commit is contained in:
Richard Hansen 2021-10-28 17:44:10 -04:00
parent e28c9ffc97
commit c8e0916e1a
2 changed files with 25 additions and 29 deletions

View file

@ -311,14 +311,21 @@ const handshake = async () => {
}
});
await new Promise((resolve) => {
const h = (obj) => {
if (obj.accessStatus || obj.type !== 'CLIENT_VARS') return;
socket.off('message', h);
resolve();
};
socket.on('message', h);
});
await Promise.all([
new Promise((resolve) => {
const h = (obj) => {
if (obj.accessStatus || obj.type !== 'CLIENT_VARS') return;
socket.off('message', h);
resolve();
};
socket.on('message', h);
}),
// This hook is only intended to be used by test code. If a plugin would like to use this hook,
// the hook must first be promoted to officially supported by deleting the leading underscore
// from the name, adding documentation to `doc/api/hooks_client-side.md`, and deleting this
// comment.
hooks.aCallAll('_socketCreated', {socket}),
]);
};
/** Defers message handling until setCollabClient() is called with a non-null value. */